2

JUnit (ワークスペースで実行されている) から Tomcat で実行されている Spring コンテキストにアクセスする際に問題が発生しました。

私のコードのデモ:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
    "classpath:/WEB-INF/applicationContext-resources.xml"
})
public class JUnitAccessSpringContextTest
{
}

残念ながら、Tomcat にデプロイする前にワークスペースの「applicationContext-resources.xml」の値が置き換えられるため、上記のコードは私の場合は機能しません。

質問:

  1. ここで「クラスパス」とはどういう意味ですか?

  2. 「クラスパス」を変更したり、インストールした tomcat の場所など、ここに新しい値を追加したりできますか?

上記の問題を解決する別の方法は、 @ContextConfiguration がファイルを直接指すようにすることです。私のシステムでは動作しますが (次のコードで示されています)、「path_to_my_tomcat_application」がハードコードされているため、実際の使用には適していません。

  1. プロパティファイルから読み取った文字列や System.getenv(System_parameter_value) を介したシステム値など、ある種の変数を @ContextConfiguration 「ファイル」文字列に挿入できますか?

私のコードの変更:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
    "file:<path_to_my_tomcat_application>/applicationContext-resources.xml"
})
public class JUnitAccessSpringContextTest
{
}

追加情報:

物事をさらに複雑にするために。プロジェクトの古いSpringバージョン(2.5)で実行しています。しかし、必要に応じて、少なくとも spring-test.jar のバージョンを変更できると思います。実行中のプロジェクトには影響しません。私は正しいですか?

4

1 に答える 1