在将其标记为重复之前,请先阅读问题。我已经阅读了有关此异常的所有内容,但它并没有为我解决问题。而且我确实得到了一个稍微不同的异常,例如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 在之前的测试中仍然处于活动状态。
注意:这仅在运行多个测试时发生(例如,像 clean + build)。单独运行这个测试类可以很好地工作。
什么问题?我该如何解决?