Java Ehcache总是返回null
我使用Ehcache 2.6.8作为Spring启动应用程序的一部分,作为Hibernate 4.3.11的二级缓存。我有一个JMX MBean,它允许我检查缓存()的内容 首先,我使用CacheManager名称获取缓存列表。那很好。我可以使用Java Ehcache总是返回null,java,spring,hibernate,ehcache,Java,Spring,Hibernate,Ehcache,我使用Ehcache 2.6.8作为Spring启动应用程序的一部分,作为Hibernate 4.3.11的二级缓存。我有一个JMX MBean,它允许我检查缓存()的内容 首先,我使用CacheManager名称获取缓存列表。那很好。我可以使用cacheManager.getEhcache(cacheName)返回缓存。然后我调用cache.getKeys()。这工作正常,cacheName为“com.myapp.DomainObjectName”,键列为“com.myapp.DomainOb
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在生产中分发缓存。但是,即使在我的笔记本电脑上,我也看到了相同的行为。您可以找到密钥这一事实表明缓存中有内容 通过阅读您的问题,我认为您错误地将键解释为
String
。JMX显示的是键的toString()
,因此使用该字符串作为键不返回任何内容
您需要一种方法来直接使用get(key)
D'oh!不管出于什么原因,我假设这些键是字符串,而没有考虑它。谢谢