使用EhCache 2.6.0的ClassCastException

时间:2012-09-26 16:03:44

标签: java ehcache

我正在使用EhCache存储我的应用程序对象的有限大小的缓存,但在升级其版本后,我在使用 cache.get(...)时遇到此异常:

java.lang.ClassCastException: net.sf.ehcache.store.chm.SelectableConcurrentHashMap$DummyPinnedKey cannot be cast to br.com.project.util.VttcElement

有人知道我们应该在缓存密钥中实现任何新接口吗?

这是我改编的代码:

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;

private VttcElementCache() {
    CacheManager cacheManager = CacheManager.create(METAINFFileLoader.getInputStream("ehcache.xml"));
    cache = cacheManager.getCache("br.com.project.util.VttcElement");
}

private void load(int id, long idf) {
    cache.put(new Element(new VttcElement(id, idf), "1"));
}

private String get(VttcElement vttcElement) {
    Element element = cache.get(vttcElement); //The exception is thrown here!
    (String) return elemente.getValue();
}

1 个答案:

答案 0 :(得分:0)

我找到了。

由于某种原因,我的密钥类 VttcElement 没有很好地存储在缓存中,因为异常是在它的等于方法中引发的(VttcElement)obj 。

我使用与逗号连接的属性将所有键更改为字符串而不是 VttcElement ,它完美地作为键。

非常感谢。