2016-10-03 4 views
0

Ich versuche, eine Liste von Objekt des Typs FilerDetailsExcelFileBean (Paket A von Projekt A) in Byte-Array zu konvertieren.Nach erfolgreicher Konvertierung in Projekt A. Ich übergeben Byte-Array an Web-Service und dann wieder Byte-Array in List konvertiert Object vom Typ FilerDetailsExcelFileBean (Paket B von Projekt B) in Projekt B. Um eine Liste von Objekten aus dem Byte-Array zurückzuholen, habe ich in beiden Projekten dieselbe Datei FilerDetailsExcelFileBean erstellt, da Paket B aufgrund des Entwurfsmusters keine Paket A-Dateien importieren kann.Java Serialisierung

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
ObjectOutputStream oos = new ObjectOutputStream(bos); 
oos.writeObject(List); 
byte[] bytes = bos.toByteArray(); 

Codebyte Array in ListOfObject zu konvertieren::

Code ListOfObject in Byte-Array konvertieren

ByteArrayInputStream bis = new ByteArrayInputStream(filerMarkingFile.getRequestFile()); 
ObjectInputStream ois = new ObjectInputStream(bis); 
List<FilerDetailsExcelFileBean> f = (List<FilerDetailsExcelFileBean>) ois.readObject(); 

Fehler ist: FilerDetailsExcelFileBean ClassNotFound Ausnahme

Anmerkung: Listen vom Typ FilerDetailsExcelFileBean Datei sind in anderem Projekt-A (Code ListOfObject in Byte-Array :) und FilerDetailsExcelFileBean Datei ist in anderem Projekt-B (Code zu konvertieren Byte-Array in ListOfObject :) zu konvertieren. Der Import von FilerDetailsExcelFileBean ist aus bestimmten Gründen nicht in Projekt B möglich.

Ich kenne das Problem (Problem ist, dass, wenn wir ArrayList in Byte-Array konvertiert, verschiedene persistente Datei verwendet wird und wenn wir es wieder in ob Object-Liste, wird verschiedene persistente Datei verwendet), aber ich muss dieses Problem lösen. Was ist die beste Lösung für dieses Problem

+0

Erstellen Sie eine Bibliothek mit der Klasse 'FilerDetailsExcelFileBean' und fügen Sie diese beiden Projekten hinzu. – samirk433

Antwort

2

Das wird nicht funktionieren, eine packageA.FilerDetailsExcelFileBean ist nicht die gleiche Klasse wie packageB.FilerDetailsExcelFileBean, so dass Sie nicht die erste serialisieren und dann es als die zweite deserialize. Die Tatsache, dass die Klassennamen und sogar das Layout der Klasse identisch sind, ist nicht genug. Wenn Sie dies mit der Java-Serialisierung machen wollen, müssen die Klassen genau gleich sein - sie müssen sich auch im selben Paket befinden.

Verwenden Sie anstelle der Java-Serialisierung einen anderen Mechanismus, z. B. das Objekt in JSON oder XML konvertieren und auf der anderen Seite analysieren.