2016-03-30 5 views
0

i-Caching-Lösung in ibm integration bus bin der Umsetzung mit java innerhalb der Nachrichtenflüsse und die Logik ist wie das umgesetzt folgende:Classcast gleichen Typs und Caching in ibm Integration Bus

  1. ich die Basis gebaut class: Deparment:

    public class Abteilung implementiert Serializable {// die Mitglieder mit Getter und Setter}

  2. baute ich ein Wrapper class definiert eine ArrayList<Department>

    öffentliche Klasse CachedDepartment implementiert Serializable { private ArrayList-Abteilungen; // mit Setter und Getter .... }

  3. Ich habe Klasse, die die cache Lösung set neue value und get implementiert die value

zu set:

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

bis get:

CachedDepartment cacheddept = null; 
     MbGlobalMap globalMap = MbGlobalMap.getGlobalMap(globalMapName); 
     cacheddept = (CachedDepartment) globalMap.get(key); 
  1. i erstellt jar-Datei und legen Sie sie auf classLoader Verzeichnis und dessen Lauf, wenn cache Einstellung, das Problem ist, wenn die get-Funktionalität ausgeführt wird.

    java.lang.ClassCastException: cache.entities.CachedDepartment unvereinbar mit cache.entities.CachedDepartment

ich diesen Link ClassCastException when casting to the same class lesen, aber immer noch nicht, weiß ich, wie es in IBM Integration bus zu lösen, die auf laufen JDK 1.7 irgendwelche Ideen ???

Antwort

2

Ich denke, das Problem ist, dass das Projekt, das die CachedDepartment - und Department - Klassen enthält, immer noch in den Projektreferenzen Ihres IIB - Java - Projekts enthalten ist, was das Toolkit auf dem Integrationsserver bereitstellt, aber dieses Projekt sollte nur auf dem Server bereitgestellt werden shared-classes-Verzeichnis.

Entfernen Sie das Projekt, das die zwischengespeicherten Entitäten enthält, aus den Projektreferenzen und dem Java-Erstellungspfad Ihres IIB-Java-Projekts und fügen Sie es als externe JAR zu den Bibliotheken unter Java-Buildpfad hinzu.

Weitere Details hier:

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/

+0

Vielen Dank es funktioniert, ich das Glas setzen auf 'classes' Ordner des Servers und i hinzugefügt, um die' jar' im 'buildpath' für' IIB' Projekt . –