6

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

これは、サーバーの電源を切るタイミング (デバッグ中) やサーバーをクリーンアップするタイミングなどを理解するのに役立ちます。

デバッグを上手に行うには、サーバーに何が入るかを知る必要があります。

今のところ、何か問題が発生するたびにサーバーを再起動するだけです。私はそれをするのに十分な時間を無駄にしました。舞台裏で何が起こっているのかを理解するために、もう少し時間を費やす必要があると思います。

4

1 に答える 1

18

環境の前提

私は仮定します:

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

配置ディレクトリ

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

出版

公開は、Web アプリケーションの組み立てと展開を担当する中心的なプロセスです。ローカル Tomcat について話すとき、これは「Web コンテンツ、コンパイルされたクラス、ライブラリなど」を配置ディレクトリ (のディレクトリ.metadata) にコピーすることを意味します。

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

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

公開設定

静的リソースの変更

変更する場合は、次のように言いますsrc/main/webapp/resources/myApp/css/main.css

  • パブリッシュ時に、ファイルは展開フォルダーにコピーされます
  • サーバークライアントはリソースをすぐに利用できます

JSPファイルの変更

JSP ファイルを変更する場合:

  • パブリッシュ時に、ファイルは展開フォルダーにコピーされます
  • Tomcat は JSP ファイルが変更されたことを認識し、再コンパイルします。
  • 変更された JSP はコンテンツをレンダリングする準備ができています

Java ファイルの変更

Java ソース ファイルを変更する場合:

  • ファイルはにコンパイルされますtarget/classes
  • パブリッシュ時に、ファイルは展開フォルダーにコピーされます
  • Tomcatは、クラス ファイルが変更されたことを認識し、コンテキストをリロードします (つまり、Web アプリケーションが再起動されます)。

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

オートリロード機能

Java の変更のリロードに関して、より高度なソリューション (つまり、メソッド本体だけの変更に限定されない) が必要な場合は、JRebel (無料ではない) などのプロジェクトをチェックする必要があります。

クリーニング

デプロイされたアプリケーションが破損する可能性があります。完全にコンパイルおよび公開されたリソースを消去する場合は、次のことを行う必要があることに注意してください。

  • コンパイルされたクラスを消去します ( Project > Clean...-deletes target/classes)
  • デプロイされたファイルを消去します ( Server > Clean...- デプロイ フォルダーを削除します) 。
  • Tomcat の作業ディレクトリを消去します ( Server > Clean Tomcat Work Directory...- コンパイル済みの JSP を削除します)。
于 2013-07-07T07:58:21.380 に答える