5

Eclipse の Web Tools Platform (WTP) を使用すると、Tomcat を「公開せずにサーバー モジュール」に構成できます。

Web コンテンツは、動的 Web プロジェクトの「WebContent」フォルダーから直接提供されます。カスタマイズされたコンテキストを使用して、プロジェクトの依存関係を Web アプリケーションのクラスローダーで使用できるようにします。

5 ステップのプロセス (冗談です。ステップ数を選択してください) では、技術的に何が行われ、Eclipse が生成するファイルはどこにあるのでしょうか? org.eclipse.jst.server.tomcat.runtime.70.loader.jarEclipseが Tomcat の lib ディレクトリにファイルを生成していることに気付きました。

4

1 に答える 1

15

WEB-INF/libモジュールを JAR にパッケージ化してから WAR にすることなく、開発ワークスペースの散在するディレクトリ構造から Web アプリケーションを直接提供するという考え方です。

主な利点は次のとおりです。

  • アーカイブを構築する必要はありません。
  • ワークスペース内のリソースを変更すると、webapp を再デプロイしたりサーバーを再起動したりしなくても、実行中の webapp に変更が反映されます。

Servlet 3.0 では、Web リソースも のライブラリ JAR にバンドルされる場合があるMETA-INF/resourcesため、クラスリソースは複数のワークスペース ディレクトリから取得される場合があります。

Tomcat 7.0 は、散在するリソースおよびクラス ディレクトリのコレクションに基づいて Web アプリケーションを構成するVirtualWebappLoaderおよび をサポートします。VirtualDirContext

Eclipse ワークスペースから Web アプリを直接提供するために、WTP は、プロジェクト構造に一致する適切な Tomcat 構成を生成します。$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/conf/server.xml

何らかの理由で、WTP は Tomcat ローダーとコンテキストの実装を直接使用しませんが、わずかに異なるが類似した独自のWtpDirContextとを持っています。WtpWebappLoader(このアプローチは、Tomcat の現在のソリューションよりも古いと思います。TLD スキャンにはいくつかの特別なロジックがあります。これが最新の Tomcat バージョンでまだ必要かどうかはわかりません。) これらのヘルパー クラスは、org.eclipse.jst.server.tomcat.runtime.70.loader.jarお気づきの.

公開せずにモジュールを提供しない場合、ライブラリ モジュールで Web リソースをMETA-INF/resources変更すると、ブラウザで現在のページをリロードした後、この変更は実行中のアプリケーションに直接表示されません。

于 2013-05-05T14:53:58.810 に答える