JUnit (ワークスペースで実行されている) から Tomcat で実行されている Spring コンテキストにアクセスする際に問題が発生しました。
私のコードのデモ:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:/WEB-INF/applicationContext-resources.xml"
})
public class JUnitAccessSpringContextTest
{
}
残念ながら、Tomcat にデプロイする前にワークスペースの「applicationContext-resources.xml」の値が置き換えられるため、上記のコードは私の場合は機能しません。
質問:
ここで「クラスパス」とはどういう意味ですか?
「クラスパス」を変更したり、インストールした tomcat の場所など、ここに新しい値を追加したりできますか?
上記の問題を解決する別の方法は、 @ContextConfiguration がファイルを直接指すようにすることです。私のシステムでは動作しますが (次のコードで示されています)、「path_to_my_tomcat_application」がハードコードされているため、実際の使用には適していません。
- プロパティファイルから読み取った文字列や 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 のバージョンを変更できると思います。実行中のプロジェクトには影響しません。私は正しいですか?