概要
デプロイされた Java Web アプリが接続する中央の LDAP サーバーがあります。私たちの JUnit テストは、LDAP リポジトリ内の特定のデータに依存しているため、サンプル データ セットが準備された組み込みの ApacheDS LDAP サーバーに接続する必要があります。Web アプリケーションをデプロイするときに ApacheDS サーバーが起動しないようにするにはどうすればよいでしょうか?
詳細
Spring セキュリティを使用しており、ldap-context.xml に組み込み LDAP サーバーを起動するための次の行があります。
<security:ldap-server root="dc=test,dc=com" port="33389" ldif="classpath:EmbeddedServerRoot.ldif" />
現在、web.xml は、このテスト コンテキスト ファイルと最上位の application-context.xml の両方を参照しています。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:ldap-context.xml
classpath:application-context.xml
</param-value>
</context-param>
JUnit テストを実行するとき、および Eclipse から (WTP 経由で) 直接 webapp を実行するときに、ldap-context.xml が含まれていることを確認する必要がありますが、war をパッケージ化してサーバーにデプロイするときには除外されます。
ビルドツールとしてmavenを使用しています。コンテキスト構成に両方のスプリング コンテキスト ファイルが含まれていることを確認することで、JUnit テストでこの状況をかなり簡単に処理できます。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:ldap-context.xml", "classpath:application-context.xml" })
public class TestStuff {
}
次に、web.xml には application-context.xml のみが含まれますが、1 つのことを除いて - これは WTP から実行している場合は機能しません - その場合も組み込みサーバーを起動する必要があります。助言がありますか?