1

私はおそらくこれについて間違って考えていますが、これが私が反対していることです:

セキュリティ証明書の場所を提供するSpringResourceオブジェクトをアプリに挿入しています。例:<property name="certificateResource" value="SomeCert.p12" />certificateResourceのタイプは次のとおりです。org.springframework.core.io.Resource

JUnitで実行されているリソースはクラスパスリソースであり、すべて問題ありません。Tomcatの下で戦争として展開された場合、リソースはサーブレットコンテキストにありWEB-INF/classes/、証明書の前に追加する必要があります。

リソースプレフィックスとワイルドカードの組み合わせをいくつか試しましたが、両方のコンテキストを満たす単一の文字列を思い付くことができません。これまでのところ、「解決策」はsrc/test/resources/test-applicationContext.xmlのBean定義をオーバーライドすることですが、それは2つの場所で文字列を維持することを意味します。

おかげで、より良い解決策へのポインタをいただければ幸いです。

4

1 に答える 1

2

spring-test と spring-webmvc を使用し、xml 構成で参照されるリソースを使用して、小さいながらも記述的なアプリケーションを作成しようとしましたが、これらの xml は本番環境およびテスト用の春の構成で再利用されます。これが私が受け取ったものです:github.com/isopov/spring-resource-test

中心となるのは、テスト構成からの製品 xml 構成の参照です。

<import resource="file:src/main/webapp/WEB-INF/applicationContext.xml" />

ある xml を別の xml からインポートせずに、各テストにいくつかの構成を与えることもできます。

@ContextConfiguration(locations = { "classpath:test-applicationContext.xml",
                       "file:src/main/webapp/WEB-INF/applicationContext.xml" })

リソース自体が存在するためsrc/main/resources(Mavenまたは「標準ディレクトリレイアウト」から派生したものを使用していると仮定しました)、常に"classpath:hello.txt"任意のSpring構成からアクセスできます。

私はこれを Maven ビルド、Web アプリケーション、および Eclipse 内で実行中の UT でテストしました。

于 2012-12-19T16:19:20.833 に答える