首页 文章

Ehcache始终返回null

提问于
浏览
0

我将Ehcache 2.6.8作为Spring Boot应用程序的一部分用作Hibernate 4.3.11的二级缓存 . 我有一个JMX MBean,允许我检查缓存的内容(here if you are interested) .

首先,我使用CacheManager名称来获取缓存列表 . 这很好 . 我可以使用 cacheManager.getEhcache(cacheName) 返回缓存 . 然后我打电话给 cache.getKeys() . 这工作正常,cacheName是"com.myapp.DomainObjectName",键列为"com.myapp.DomainObjectName#1","com.myapp.DomainObjectName#2"等 .

但后来我尝试通过调用 cache.get("com.myapp.DomainObjectName#1") 来访问其中一个对象,使用缓存本身告诉我的其中一个键 . 然而,结果始终为空 .

这是为什么?为什么我找不到与密钥关联的对象,就像之前的缓存本身所说的那样?

PS,可能不相关,但我正在使用JGroups在 生产环境 中分发缓存 . 但是,即使在我的笔记本电脑上,我也会看到相同的行

1 回答

  • 0

    您可以找到密钥的事实表明缓存中有内容 .

    从阅读你的问题,你错误地把钥匙解释为 String 我相信 . JMX向您显示的是密钥的 toString() ,因此使用 String 作为密钥不会返回任何内容 .

    您需要一种方法直接使用 get(key) 中的对象 .

相关问题