IBM 集成总线中具有相同类型和缓存的 ClassCastException
ClassCastException with same type and caching in ibm integration bus
我正在 ibm integration bus
中使用消息流中的 java
实现缓存解决方案,逻辑实现如下:
我建了基地 class
: Deparment
:
public class Department implements Serializable { // 有 setter 和 getter 的成员 }
我构建了一个 Wrapper class
定义了一个 ArrayList<Department>
public class CachedDepartment 实现 Serializable {
私有 ArrayList 部门;
// 使用 setter 和 getter ....
}
我创建了 class 实现 cache
解决方案 set
新 value
get
value
到set
:
MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName);
globalMap.put(key, value);
到get
:
CachedDepartment cacheddept = null;
MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName);
cacheddept = (CachedDepartment) globalMap.get(key);
我创建了jar
文件并将其放在classLoader
目录及其运行中,当设置cache
时,问题是[=74] =]启用获取功能。
java.lang.ClassCastException: cache.entities.CachedDepartment 与 cache.entities.CachedDepartment
不兼容
我读了这个 link ClassCastException when casting to the same class 但我仍然不知道如何在 IBM Integration bus
中解决它 运行 关于 JDK 1.7
有什么想法吗? ??
我认为问题在于包含 CachedDepartment 和 Department 类 的项目仍在您的 IIB Java 项目的项目引用中,是什么让工具包将其部署到集成服务器,但该项目只应部署到 shared-类 目录。
因此,从项目引用和 IIB Java 项目的 Java 构建路径中删除包含缓存实体的项目,并将其作为外部 JAR 添加到 [=19] 下的库中=]构建路径。
此处有更多详细信息:
我正在 ibm integration bus
中使用消息流中的 java
实现缓存解决方案,逻辑实现如下:
我建了基地
class
:Deparment
:public class Department implements Serializable { // 有 setter 和 getter 的成员 }
我构建了一个
Wrapper class
定义了一个ArrayList<Department>
public class CachedDepartment 实现 Serializable { 私有 ArrayList 部门; // 使用 setter 和 getter .... }
我创建了 class 实现
cache
解决方案set
新value
get
value
到set
:
MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName);
globalMap.put(key, value);
到get
:
CachedDepartment cacheddept = null;
MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName);
cacheddept = (CachedDepartment) globalMap.get(key);
我创建了
jar
文件并将其放在classLoader
目录及其运行中,当设置cache
时,问题是[=74] =]启用获取功能。java.lang.ClassCastException: cache.entities.CachedDepartment 与 cache.entities.CachedDepartment
不兼容
我读了这个 link ClassCastException when casting to the same class 但我仍然不知道如何在 IBM Integration bus
中解决它 运行 关于 JDK 1.7
有什么想法吗? ??
我认为问题在于包含 CachedDepartment 和 Department 类 的项目仍在您的 IIB Java 项目的项目引用中,是什么让工具包将其部署到集成服务器,但该项目只应部署到 shared-类 目录。
因此,从项目引用和 IIB Java 项目的 Java 构建路径中删除包含缓存实体的项目,并将其作为外部 JAR 添加到 [=19] 下的库中=]构建路径。
此处有更多详细信息: