Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebSphere DynaCache脱盐问题_Java_Jakarta Ee_Websphere_Websphere Portal_Dynacache - Fatal编程技术网

Java WebSphere DynaCache脱盐问题

Java WebSphere DynaCache脱盐问题,java,jakarta-ee,websphere,websphere-portal,dynacache,Java,Jakarta Ee,Websphere,Websphere Portal,Dynacache,我有两个门户网站项目 项目1 项目2 我有一个共享库(sharedLibrary.jar)集,用于上述两个项目。我的共享库用于查找dyna缓存并从中设置/获取数据 我正在将我自己的bean(比如com.test.UserBean)从项目1设置为dyna缓存 现在从项目2开始,我试图从缓存中检索bean(com.test.UserBean)。当这样做时,我得到了classCastException 但当我像下面那样分配它时,它向我显示了对象是com.test.UserBean Object obj

我有两个门户网站项目

项目1

项目2

我有一个共享库(sharedLibrary.jar)集,用于上述两个项目。我的共享库用于查找dyna缓存并从中设置/获取数据

我正在将我自己的bean(比如com.test.UserBean)从项目1设置为dyna缓存

现在从项目2开始,我试图从缓存中检索bean(com.test.UserBean)。当这样做时,我得到了classCastException

但当我像下面那样分配它时,它向我显示了对象是com.test.UserBean

Object obj=distributedMap.get(); 我的bean实现了Serializable接口,并有一个SerialVersionId字段

我不知道这里发生了什么。这是类加载器问题还是其他问题


有谁能解释一下吗?

这不太可能是序列化问题,而更可能是类加载器问题

如果两个portlet web应用程序都通过一个公共类加载器加载了该类,那么可以通过DynaCache共享实例

但是,如果使用两个不同的类加载器从相同的.jar(磁盘上)加载相同的.class,并且两个应用程序共享一个实例(例如,通过DynaCache分布式映射),您将遇到一个
ClassCastException
——即使您已经看到,
myInstance.getClass().getName()
生成相同的字符串


要确认这一点,您可以使用。这将允许您针对每个模块对“两个类加载器,一个类”问题进行故障排除。信息中心文档上有一个伴随文档,它将引导您完成整个过程。classloader查看器将显示每个模块中使用哪个.jar和哪个classloader加载
com.test.UserBean
。例如,您可能意外地将jar打包在一个而不是另一个的WEB-INF/lib中,并启用了父类上次加载。

您是如何部署共享库的?另外,您可以发布完整的堆栈跟踪吗?