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

2024-02-04

这就是我运行 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 个缓存管理器同时运行?

这就是我使用 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语义 http://ehcache.org/documentation/get-started/key-classes-methods#introduction.

Ehcache 2.5 之前的版本允许 JVM 中存在任意数量的同名(相同配置资源)的 CacheManager。

Ehcache 2.5及更高版本不允许同一个JVM中存在多个同名的CacheManager。创建非 Singleton CacheManager 的 CacheManager() 构造函数可能会违反此规则

通过设置来告诉工厂 bean 在 JVM 中创建 CacheManager 的共享实例shared http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.html#setShared%28boolean%29属性为真。

<bean id="cacheManager"
      class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
      p:shared="true"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一虚拟机中已存在另一个未命名的 CacheManager (ehCache 2.5) 的相关文章

随机推荐

  • 如何使用凭证配置文件通过 AWS CLI 登录

    我想设置多个 AWS 配置文件 以便在项目之间跳转时可以轻松更改设置和凭证 我已阅读 AWS 文档 但关于如何选择登录时要使用的配置文件非常模糊 当我尝试登录时 它只是给我这个错误 这似乎表明它没有获取任何凭据 An error occur
  • 模块联合无法在 webpack.config.js 中动态挂接远程

    当我在 index html 中预先加载遥控器时 我已经进行了模块联合设置并且工作正常 下面的作品 index html div div host webpack name home library type var name home f
  • pybind11、cmake:如何安装文件?

    我正在将 C 库与越来越流行的接口连接起来pybind11 https github com pybind pybind11获取本机 Python 绑定 配置是通过CMake My CMakeLists txt好像 cmake minimu
  • Docker 构建时出现“组织已启用或强制执行 SAML SSO。要访问远程:此存储库”错误

    FROM golang 1 17 alpine as builder ENV GOPRIVATE github com XXXXX ARG GITHUB TOKEN GITHUB TOKEN RUN apk update apk add g
  • HTML/CSS 显示/隐藏多个元素?

    我正在寻找一个 HTML CSS 解决方案来应对这一挑战 我有多个具有相同类或相同 id 的元素 并且我想使用按钮或切换开关同时显示 隐藏它们 然后我有一个单击事件 当我单击代表所有这些元素的类或 ID 时 它们都会隐藏 当我再次单击时 它
  • Laravel 存储文件的公共 url

    我想检索使用存储的所有文件的公共网址 存储 putFile 公共 备件 所以 这是我正在使用的问题 存储 文件 公共 备件 但它提供了 laravel 存储目录的输出 public spares image1 jpg public spar
  • 应用程序退出后未设置剪贴板?

    以这个例子为例如何使用 Python 将字符串复制到 Windows 上的剪贴板 https stackoverflow com questions 579687 how do i copy a string to the clipboar
  • 我可以使用 Linux/Mono 部署 aspnet web 应用程序吗?

    我有一个 C ASP NET 应用程序 可以在带有 IIS 的 Windows 上运行 但最近我很想切换到 Linux Mono 它提出了一些问题 我可以在 Mono 中正确运行我的 Visual Studio 项目和源代码吗 我的客户使用
  • 无法运行growl通知并且gemgrowl_notify抛出错误

    当我运行 guard 时 我无法收到咆哮通知 我需要growl notify 的任何特定版本吗 咆哮版本 1 2 这是我的宝石文件 gem rails 3 1 3 gem sqlite3 group development test do
  • 如何按值对计数器进行排序? - Python

    除了进行反向列表理解的列表理解之外 是否有一种Pythonic方法可以按值对Counter进行排序 如果是这样 它比这个更快 gt gt gt from collections import Counter gt gt gt x Count
  • 如何加载和解析 SVG 文档

    背景 有许多与读取和解析 SVG 路径相关的未解答问题 用Java读取svg路径数据的最简单方法 https stackoverflow com questions 21973777 回复 使用 batik svg 解析器解析 svg 文件
  • 如何获取 Invoke-AzureRmVMRunCommand 命令的输出流?

    我正在尝试运行以下命令 Invoke AzVMRunCommand ResourceGroupName instance ResourceGroupName Name instance Name CommandId RunPowerShel
  • Sequelize 设置时区进行查询

    我目前正在使用续集 with postgres在我的项目中 我需要更改查询 因此它返回带有时区偏移量的created at列 var sequelize new Sequelize connStr dialectOptions useUTC
  • DynamoDB query() 与 getItem() 基于索引进行单项检索

    如果我根据索引哈希键从表中检索单个项目 两者之间是否存在性能差异query or getItem getItem会更快 getItem通过哈希和范围键检索是 1 1 匹配 检索它所需的时间 因此性能 受到内部哈希和分片的限制 查询结果是对
  • 如何将 AJAX 成功变量存储为 AJAX 之外的变量?

    我使用 AJAX 来获取我命名为变量 myPubscore 的数据 现在我尝试将 myPubscore 发送到另一个 js 文件 myPubscore 在 Ajax 中打印得很好 但是当我在 sendResponse 之前打印时 我收到 事
  • 如何从数组中获取最多代表的对象

    我有一个包含一些对象的数组 并且有几个相似的对象 例如 水果 苹果 橙子 苹果 香蕉 香蕉 橙子 苹果 苹果 从该数组中获取最多代表的对象的最有效方法是什么 在这种情况下 它将是 apple 但是您将如何有效地计算它呢 不要重新发明轮子 在
  • google.load 导致 dom/screen 为空

    我正在尝试异步添加谷歌可视化 但遇到了问题 我已将范围缩小到导致问题的 google load 当 google load 部分 js 运行时 我得到一个空的屏幕 dom 任何人都知道我做错了什么 我也尝试过使用 google setOnL
  • 推送秘密变更集

    这可能看起来很矛盾 我知道秘密变更集应该是私有的 但是如果我想备份这些秘密变更集怎么办 我并行处理一些分支 有时我想推送一个分支 但不想推送其他分支 为了实现这一目标 我在不同的克隆中工作 但我讨厌那样 所以现在 Mercurial 有阶段
  • 全局授权过滤器不适用于 Swagger UI Asp.net Web Api

    我正在实施招摇的用户界面 https swagger io tools swagger ui 对于我的 Asp net WEB Api 项目 我使用默认值System Web Http AuthorizeAttribute 我已将其注册到我
  • 同一虚拟机中已存在另一个未命名的 CacheManager (ehCache 2.5)

    这就是我运行 junit 测试时发生的情况 Another CacheManager with same name cacheManager already exists in the same VM Please provide uniq