【发布时间】:2015-08-09 14:13:25
【问题描述】:
我在 Wildfly 8.2 上有一个简单的 Infinispan 本地缓存(也尝试过分布式缓存)。在我重新部署我的 .WAR 之前,一切正常。重新部署我的 .WAR 后,我收到以下错误:
Caused by: java.lang.ClassCastException: my.package.MyClass cannot be cast to my.package.MyClass
完整的堆栈跟踪:https://gist.github.com/bagges/07af1842a874f7c99ef3
我像这样在 CDI Bean 中查找缓存:
@Path("/mypath")
@Stateless
public class MyServiceClass {
@Resource(lookup = "java:jboss/infinispan/myContainer")
private CacheContainer container;
private Cache<Integer, MyCacheObject> myCache;
@PostConstruct
public void start() {
myCache = container.getCache("myCache");
}
@GET
public String get() {
if(!myCache.containsKey(1)) {
myCache.put(1, new MyCacheObject(1, "Hello Cache"));
}
return myCache.get(1).getName();
}
}
Wildfly-配置:
<cache-container name="myContainer" jndi-name="java:jboss/infinispan/myContainer" start="EAGER">
<local-cache name="myCache"/>
</cache-container>
我知道发生错误是因为关闭了不同的类加载器。 Infinispan 尝试强制转换使用先前无法工作的类加载器存储的实体。但是如何避免呢?
【问题讨论】:
-
您可以在 gist 或 pastebin 上发布完整的堆栈跟踪吗?您的 Wildfly 配置是什么样的?
-
添加了堆栈跟踪和配置。任何想法@GalderZamarreño?
标签: java jakarta-ee wildfly classcastexception infinispan