私は、ブラウザーを介してページを展開してヒットするために必要なすべてのものを含むメイン Web プロジェクトを持っています。次に、メイン プロジェクトに含めることができる個別のプロジェクトとして、それぞれいくつかの「関数」があります。
例を挙げると、MainAppとfunctions.reportsAppがあります。
これらをビルドするとant、次のことが起こります。
- MainApp.war
- mainApp/jsf/Pages.faces など
- reportsApp/jsf/Reports.faces など
- WEB-INF/web.xml、mainapp-faces-config.xml、reportsApp-faces.config.xml など
- WEB-INF/lib
- MainApp.jar
- META-INF/* (メインアプリ)
- my/company/MainApp/Code.class
- functions.reportsApp.jar
- META-INF/* (reportsApp の)
- my/company/reportsApp/Code.class
これは正常に機能し、私が理解.warしている.jar仕様では正しいです。
ただし、Eclipse では、両方のプロジェクトを開いて、Tomcat サーバーのセットアップにデプロイ/開発したいと考えています。私は次のものを持っています:
両方のプロジェクトをインポートし、MainAppをセットアップして、 ReportsAppをプロジェクトの依存関係として持つようにします (MainApp-Properties、Java Build Path、Projects を介して)。
注: MainApp のweb.xml指定:
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>
/WEB-INF/reportsApp-faces-config.xml,
/WEB-INF/mainApp-faces-config.xml
</param-value>
reportApp のweb.xml指定:
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>
/WEB-INF/reportsApp-faces-config.xml
</param-value>
MainApp-Properties-Deployment Assembly で、Eclipse が作成したことに気付きました。
src:functions.reportsApp, deployPath: WEB-INF/lib
これは、Eclipse によって としてデプロイされTomcat/webapps/MainApp/WEB-INF/lib/functions.reportsApp.warます。戦争?これは私には意味がなく、機能しません。
それを機能させるには、次のことを行う必要があります。
- MainApp にフォルダーを追加します ([詳細] セクションを介して) ReportApp の Web ディレクトリにリンクします。
- フォルダーをリンクした MainApp の展開アセンブリに追加し、MainApp の Web フォルダーを「展開記述子のフォルダー」として選択します。
これにより、web/*(JSF などの) コンテンツが取り込まれTomcat/webapps/MainApp、ReportsApp の WEB-INF コンテンツが MainApp の WEB-INF にマージされます。
また、MainApp の Deployment Assembly に含まれfunctions.reportsApp.jarていることを確認して、Tomcat にデプロイされるようにする必要がありMainApp/WEB-INF/libます。
確かにEclipseはこれをすべて自分で考え出したでしょうか? 1 つの Web アプリが別の Web アプリに依存しているということは、依存関係を正しく展開する必要があることを意味する必要がありますか?
関連する質問: