私
は現在、Spring ベースの Web アプリケーションを使用しています。このアプリケーションには、DAO Bean の 2 つの異なる実装があります。
これらの実装は、applicationContext ファイルを使用してマップされます (上記のケースごとに 1 つずつ、2 つあります)。どちらか一方を使用する方法は、2 つの異なる web.xml ファイルを持ち、次のようなものを含む 2 番目のファイル (「web-test.xml」など) を持つことです。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:{...}/applicationContext-test.xml</param-value>
</context-param>
jetty プラグインの構成では、web.xml をオーバーライドできます。
<webAppConfig>
<contextPath>/${projectName}-test</contextPath>
<overrideDescriptor>${basedir}/web/WEB-INF/web-test.xml</overrideDescriptor>
</webAppConfig>
これは、どちらか一方の applicationContext を使用しても問題なく機能しますが、統合テストでは両方を使用する必要があります。DB アクセスが必要なテストもあれば、偽のデータを処理するテストもあるためです。
質問
使用する contextPath に応じて「web.xml」または「web-test.xml」を使用できるように、複数の webAppConfig を定義することは可能ですか?
次のように、異なる URL にアクセスする 2 つのケースを区別したいと思います。
pom.xml で次のようなことを試しました。
<webAppConfig>
<contextPath>/${projectName}</contextPath>
</webAppConfig>
<webAppConfig>
<contextPath>/${projectName}-test</contextPath>
<overrideDescriptor>${basedir}/web/WEB-INF/web-int-test.xml</overrideDescriptor>
</webAppConfig>
しかし、その結果、webAppConfig は 2 番目の定義によってオーバーライドされます。同じ Jetty インスタンスで 2 つのコンテキストにアクセスできるようにする方法はありますか?
よろしくお願いいたします。