我在使用ehcache和Spring启动tomcat时收到此错误。
Another CacheManager with same name 'cacheManager' already exists in the same VM. Please
provide unique names for each CacheManager in the config or do one of following:
1. Use one of the CacheManager.create() static factory methods to reuse same
CacheManager with same name or create one if necessary
2. Shutdown the earlier cacheManager before creating new one with same name.
- Spring3.1
- Ehcache 2.9.0版本
- 没有使用此的测试上下文。
- 这是Web JSF应用程序。
ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="true"
monitoring="autodetect"
dynamicConfig="true"
name="ehcacheManager"
>
....
</ehcache>
cache-context.xml
<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" scope="singleton">
<property name="shared" value="true"/>
<property name="configLocation">
<value>classpath:ehcache.xml</value>
</property>
</bean>
我有一个老的依赖hibernate-ehcache,不幸的是,我不能删除。这是问题吗?
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>3.5.0-Final</version>
</dependency>
有什么建议吗?谢谢!
3条答案
按热度按时间62lalag41#
此处讨论了一些解决方案here
并且可能需要提供ehcache.xml或设置该高速缓存名称,如here所示
编辑:应用程序上下文加载了两次
如果您遇到断点,请沿着stacktrace向上,您可能会发现为什么spring会两次加载上下文。
wqlqzqxt2#
有两种可能。
1.安装在semesever上的其他应用程序具有相同的缓存名称
1.由于ContextLoaderListener的原因,在启动服务器时应用程序可能会部署两次。因此,请从web.xml中删除ContextLoaderListener。
3yhwsihp3#
以下操作将解决该问题: