これを重複としてマークする前に、まず質問を読んでください。私はこの例外に関するすべてのものを読みましたが、それは私にとって問題を解決しません。Another CacheManager with same name 'myCacheManager' already exists
そして、たとえばの代わりに、わずかに異なる例外が発生しAnother unnamed CacheManager already exists
ます。
春の設定:
<cache:annotation-driven cache-manager="cacheManager"/>
<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cacheManager-ref="ehcache"/>
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:configLocation="ehcache.xml"
p:cacheManagerName="myCacheManager"
p:shared="true"/>
ehcache
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false" name="myCacheManager">
</ehcache>
問題は、セキュリティをテストするテストクラスが1つ(将来的にはもっと)あることです。これらのクラスは、SecurityContext.xmlもロードします
したがって、ほとんどのテストクラスには次のアノテーションがあります。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
ただし、問題の原因となっているクラス:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:ApplicationContext.xml",
"classpath:SecurityContext.xml"
})
場所が異なるため、コンテキストが再度読み込まれるようですが、ehcacheManagerは以前のテストからまだアクティブです。
注:これは、複数のテストを実行している場合にのみ発生します(たとえば、クリーン+ビルドなど)。このテストクラスを個別に実行すると、完全に正常に機能します。
問題は何ですか?どうすれば解決できますか?