0

私が働いている会社では、いくつかの Java Web アプリケーションをホストしています。同じボックスに実稼働サイトとデモ サイトがあります。デモ サイトは通常、本番環境で見られるもののコピーであり、リソースのみがデモ リソース (javax.sql.DataSource を使用するデータベースとレルム) を指します。セキュリティ上の懸念により、appBase は webapp ディレクトリでは定義されておらず、サーバーの別の場所で定義されています。

これらのアプリケーションを Tomcat 5 から Tomcat 7 に移行中です。Tomcat 5 サーバーには、server.xml 内で定義されたすべてのコンテキストがありました。本番ホスト、デモ ホスト、またはその両方のホストによって定義されたディレクトリにファイルをコピーするだけで済み、context.xml ファイルは server.xml によって上書きされるため、非常に便利でした。

私が読んだ Tom7 のドキュメントでは、server.xml にコンテキストを配置するこのタイプの配置は、もはや推奨されていないことを強調しています。

META-INF ディレクトリに含まれる context.xml を上書きできるようにサーバーを設定する最善の方法は何ですか。Web アプリをテスト (jar ファイルではなく) から正しいディレクトリ (運用またはデモ) にコピーできるようにしたいのですが、サーバーは運用データベースまたはデモ データベースをそれぞれ使用します。

  1. conf/Catalina/'host' ディレクトリに context.xml を定義し、名前を ROOT.xml に変更しました。サーバーを起動し、ROOT.xml ファイルをロードし、テストすると「404」を受け取りました。
  2. conf/Catalina/'host' ディレクトリで ROOT.xml を context.xml.default に変更し、サーバーを再起動しました。これはホストに影響を与えないように見えました。META-INF/context.xml で定義されたデータ定義を使用しました。
  3. conf/Catalina/'host' ディレクトリから context.xml.default を削除し、サーバーを再起動しました。予想どおり、META-INF/context.xml で定義されたデータ定義が使用されました。

ご協力いただきありがとうございます。

4

1 に答える 1