2012-11-02 2 views

答えて

16

環境エントリは、JNDIで利用できます。これはが手の届かないところにある場合に便利です(EJBsなど)。 web.xmlのものは、実際に環境エンティティーをオーバーライドするための優先順位チェーンの最後のものです。これらは通常、サーバー自身の構成で定義されます。したがって、webappからサーバ指定の環境エントリを上書きしようとする場合は、web.xmlで行うことができます。

コンテキストパラメータは、webapp自体に固有のものです。彼らは手で直接ServletContextを持っている場合にのみ利用可能で、通常はfiltersservlets(そして〜${initParam.someName}EL)とlistenersの内部にのみ存在します。これらは、Webアプリケーションで実行されているフィルター、サーブレット、および/またはリスナーの構成パラメーターを提供するために使用されるはずです。単純な目的のために複雑すぎるプロセスであるJNDIによってそれらを提供することはあまり意味がありません。

+0

私はまだ混乱しています。たとえば、データベース接続の詳細を保存したいとします。私はこれらの2つから何を使用すべきですか?私は同じTomcatに複数回自分のアプリケーションをインストールするつもりです。 – Wouter

+0

@Wouter環境エントリは、そのTomcat上で実行されているすべてのWebアプリケーションで利用可能な、より広い範囲を持っています。 「コンテキスト」は単一のWebアプリケーションで、単一の[WARファイル](https://en.wikipedia.org/wiki/WAR_%28Sun_file_format%29)にマッピングされます。したがって、データベースが単一のWebアプリケーションのみを処理する場合は、コンテキストレベルで行います。これを行う1つの方法は、ウェブアプリケーションの 'META-INF'フォルダの' context.xml'ファイルに ' ...'タグを書くことです。 「同じTomcatに複数回自分のアプリをインストールする」というあなたの言葉については、分かりませんが、理にかなっていません。 –

+0

@ BalusCあなたの最初の段落はあまり明確ではありません。環境エントリがContext Parametersよりも広い範囲を持っていると言うなら、もっと明示的に言うよりも。おそらく、[Tomcatのドキュメント](https://tomcat.apache.org/tomcat-8.0-doc/config/globalresources.html#Environment_Entries)の引用:「すべてのWebアプリケーションに表示されます」 –

関連する問題