gpt4 book ai didi

spring - 另一个未命名的 CacheManager 已存在于同一虚拟机中(ehCache 2.5)

转载 作者:IT老高 更新时间:2023-10-28 13:01:30 25 4
gpt4 key购买 nike

这就是我运行 junit 测试时发生的情况...

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.

The source of the existing CacheManager is:
DefaultConfigurationSource [ ehcache.xml or ehcache-failsafe.xml ]

异常背后的原因是什么。会不会有超过 1 个 cacheManager 同时运行?

这就是我使用 Sping 3.1.1 配置 cachManager 的方式。它明确地将 cacheManager 的范围设置为“singleton”

<ehcache:annotation-driven />

<bean
id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
scope="singleton"
/>

ehcache.xml 看起来像

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false"
maxBytesLocalHeap="100M"
name="cacheManager"
>
....
</ehcache>

终于上课了

@Component
public class BookingCache implements CacheWrapper<String, BookingUIBean> {

@Autowired
private CacheManager ehCacheManager;
....
}

我很确定我在我的代码库中只处理一个缓存管理器。其他东西可能正在运行第 n 个实例。

最佳答案

您的 EhCacheManagerFactoryBean 可能是一个单例,但它正在构建多个 CacheManager 并尝试为它们提供相同的名称。这违反了 Ehcache 2.5 semantics .

Versions of Ehcache before version 2.5 allowed any number of CacheManagers with the same name (same configuration resource) to exist in a JVM.

Ehcache 2.5 and higher does not allow multiple CacheManagers with the same name to exist in the same JVM. CacheManager() constructors creating non-Singleton CacheManagers can violate this rule

通过设置 shared 告诉工厂 bean 在 JVM 中创建 CacheManager 的共享实例。属性为 true。

<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:shared="true"/>

关于spring - 另一个未命名的 CacheManager 已存在于同一虚拟机中(ehCache 2.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com