2013-07-06 25 views
5

EclipseとTomcatサーバーを使用してJava Webアプリケーションを作成しています。私はTomcatで自分のWebサイトを実行するとどうなるのか知りたいですか? tomcatでアプリケーションを実行するためにEclipseがバックグラウンドで実行する手順は何ですか?Eclipseでtomcatでアプリケーションを実行するとどうなるのですか

(デバッグ中)サーバーを掃除するときには、/サーバのスイッチをオフにしたときに私は理解するのに役立ちますなど

私はデバッグ時に良く得ることができるように、サーバーに入るかを知る必要があります。

現在、私は何か問題が発生するたびにサーバーを再起動します。私はそれを行うのに十分な時間を無駄にした。私は舞台裏で何が起こるかを理解するのに少し時間を投資する必要があると思う。私は仮定します

+0

あなたはそれが自身の内部のTomcatのインスタンスか1を使用するかどうか、サーバ構成で、Eclipseを伝えることができますインストールされています。設定の詳細については、SOの範囲を超えていますが、Eclipseのドキュメント、「サーバー」設定ダイアログ、[Eclipse Tomcat FAQ](http://wiki.eclipse.org/WTP_Tomcat_FAQ#How_does_WTP_support_separate_Tomcat_server_instances .3F) –

+0

eclipseがtomcatサーバー上でコードを実行する方法について、いくつかの広範なステップが必要です。 – user590849

+0

あなたは以前のコメントでリンクしたFAQを見ましたか? –

答えて

16

環境の前提

  • target/classesは、コンパイルされたクラスのために
  • src/main/webapp
  • Project > Build Automaticallyオプションが
をチェックされているWebアプリケーションのコンテンツフォルダであるターゲットフォルダであります

Deployme ntディレクトリ

Eclipseは展開されたWARデプロイメントを使用しています。つまり、デプロイされたアプリケーションは、単一のファイルアーカイブではなくフォルダとしてデプロイされます。アプリケーションファイルは、${workspace}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/から配置され、読み込まれます。公開

出版

は、組み立てやWebアプリケーションをデプロイするための責任がある中心的なプロセスです。ローカルのTomcatについて言えば、これは"ウェブコンテンツ、コンパイルされたクラス、ライブラリ、..."をデプロイメントディレクトリ(.metadataのもの)にコピーすることを意味します。

Eclipseは部分的な公開を行うことができます。つまり、単一のリソースが変更された場合(たとえば、JSPの場合)、Eclipseはその1つのファイルのみを公開します。

デフォルトでは、一部のリソースが変更されたときに公開プロセスが自動的に実行されます。これはサーバ設定で変更することができます(サーバビューのサーバ名をダブルクリックします)。時に

  • は、ファイルが展開フォルダ
  • リソースにコピーされますを公開サーバーに即座に利用可能である:あなたが変更した場合は、静的リソース

を変更

Publishing setting

src/main/webapp/resources/myApp/css/main.cssを言うことができますクライアント

あなたはJSPファイル変更した場合はJSPファイル

を変更する:時に

  • は、ファイルが
  • TomcatはJSPファイルが変更されたことに気づくと
  • それを再コンパイル展開フォルダにコピーされます
    を公開します
  • 変更されたJSPはコンテンツをレンダリングする準備ができました

あなたはJavaソースファイルに変更した場合のJavaファイル

を変更する:

  • ファイルがtarget/classes
  • にコンパイルされると、ファイルが展開フォルダ
  • Tomcatのnotices that a class file was changedにコピーし、再ロードしますを公開します文脈(すなわち

[モジュール]タブのサーバー設定で自動リロード機能を無効にすることができます。自動リロードを行わなければ、実行中のJVMのコードを置き換えることができるhot swap機能を引き続き使用できます。これは、メソッドのシグネチャが変更されていない場合にのみ可能です。

Auto reloading feature

あなたは(つまり、単にメソッド本体の変更に限定されない)、より高度なソリューションが必要な場合、それはJavaの変更をリロードに来るとき、あなたはJRebel(無料ではない)のようなプロジェクトを確認する必要があります。

クリーニング

デプロイされたアプリケーションが破損する可能性があります。( - 削除target/classesProject > Clean...

  • クリーン展開ファイル(Server > Clean...は - 展開フォルダを削除)

    • クリーンコンパイルされたクラス:それは、あなたが完全にコンパイルされ、公開リソースをきれいにしたいとき、あなたべき、注目に値します
    • クリーンTomcatの作業ディレクトリ(Server > Clean Tomcat Work Directory... - コンパイル済みのJSPを削除します)
  • +0

    美しい答え – VedX

    +0

    完璧なあなたは+1に値します。 1つのクエリで内部的にサーバーが再起動しますか? – piechuckerr

    関連する問題