を使用するもう1つの理由は、サーブレットのinitパラメータcontext.xml
をオーバーライドすることです。このパラメータを使用して、Springなどで管理されているDBCPなど、さまざまな設定を行うことができます。
これは、システムプロパティや環境変数よりも優先される可能性があります。これは、同じWARの複数のコピーを、WARを変更せずに単一のコンテナーにデプロイでき、それらの構成が重複しないためです。
ちなみに、context.xml
はWARの外に住むことができます(それに関するTomcatのドキュメントまたは以下のスニペットを参照してください):
個々のコンテキスト要素は明示的に定義できます。
- アプリケーションファイル内の/META-INF/context.xmlにある個々のファイル。オプションで(ホストのcopyXML属性に基づいて)これを$ CATALINA_BASE / conf / [enginename] / [hostname] /にコピーし、アプリケーションのベースファイル名と「.xml」拡張子に名前を変更できます。
- $ CATALINA_BASE / conf / [enginename] / [hostname] /ディレクトリ内の個々のファイル(拡張子は「.xml」)。コンテキストパスとバージョンは、ファイルのベース名(ファイル名から.xml拡張子を差し引いたもの)から取得されます。このファイルは、WebアプリケーションのMETA-INFディレクトリにパッケージ化されているcontext.xmlファイルよりも常に優先されます。
- メインのconf/server.xmlのHost要素内。
複数のWebアプリケーションに適用されるデフォルトのコンテキスト要素を定義できます。個々のWebアプリケーションの構成は、これらのデフォルトの1つで構成されたものをすべてオーバーライドします。デフォルトのコンテキストで定義されているネストされた要素(要素など)は、デフォルトが適用されるコンテキストごとに1回作成されます。それらはコンテキスト要素間で共有されません。
- $ CATALINA_BASE / conf / context.xmlファイル:Context要素情報はすべてのWebアプリケーションによってロードされます。
- $ CATALINA_BASE / conf / [enginename] / [hostname] /context.xml.defaultファイル:Context要素情報は、そのホストのすべてのWebアプリケーションによってロードされます。