0

我在消息流内部ibm integration bus使用实现缓存解决方案,java逻辑实现如下:

  1. 我建立了基地class: Deparment:

    public class Department implements Serializable { // 具有 setter 和 getter 的成员 }

  2. 我建立了一个Wrapper class定义一个ArrayList<Department>

    公共类 CachedDepartment 实现 Serializable { 私有 ArrayList 部门;// 使用 setter 和 getter .... }

  3. 我创建了实现新 的cache解决方案的类setvaluegetvalue

set

MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName);
    globalMap.put(key, value);

get

CachedDepartment cacheddept = null;
        MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName);
        cacheddept = (CachedDepartment)  globalMap.get(key);
  1. 我创建了jar文件并将其放在classLoader目录中并在设置cache时运行,问题出在运行获取功能时。

    java.lang.ClassCastException:cache.entities.CachedDepartment 与 cache.entities.CachedDepartment 不兼容

我在投射到同一个班级时阅读了这个链接ClassCastException但我仍然不知道如何IBM Integration bus在任何想法的运行中解决它JDK 1.7???

4

1 回答 1

2

我认为问题在于包含 CachedDepartment 和 Department 类的项目仍在您的 IIB Java 项目的项目引用中,是什么让 Toolkit 将其部署到集成服务器,但该项目应该只部署到共享类目录.

因此,从项目引用和 IIB Java 项目的 Java 构建路径中删除包含缓存实体的项目,并将其作为外部 JAR 添加到 Java 构建路径下的库中。

更多细节在这里:

https://developer.ibm.com/integration/blog/2013/10/17/how-to-store-logical-message-tree-data-in-the-global-cache-using-jaxb-in-ibm-集成总线-v9/

于 2016-03-31T10:04:49.443 回答