ClassCastException с тем же типом и кешированием в интеграционной шине ibm

Я реализую решение кэширования в ibm integration bus, используя java внутри потоков сообщений, и логика реализована следующим образом:

  1. Я построил базу class: Deparment:

    открытый класс Department реализует Serializable {// члены с установщиками и получателями}

  2. Я построил Wrapper class, который определяет ArrayList<Department>

    открытый класс CachedDepartment реализует Serializable {частные отделы ArrayList; // с сеттерами и геттерами ....}

  3. Я создал класс, реализующий cache решение для set нового value и get value

to set:

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

to 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 какие-нибудь идеи ???


person Abu taha    schedule 30.03.2016    source источник


Ответы (1)


Я думаю, что проблема в том, что проект, содержащий классы CachedDepartment и Department, все еще находится в ссылках на проекты вашего проекта IIB Java, что заставляет Toolkit развернуть его на сервере интеграции, но этот проект следует развертывать только в каталоге общих классов. .

Поэтому удалите проект, содержащий кэшированные объекты, из ссылок проекта и пути сборки Java вашего проекта Java IIB и добавьте его как внешний 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-integration-bus-v9/

person Attila Repasi    schedule 31.03.2016
comment
Спасибо, все работает, я поместил банку в папку classes на сервере и добавил jar в проект buildpath для IIB. - person Abu taha; 05.04.2016