Serialisierung ClassNotFound

Status
Nicht offen für weitere Antworten.
I

_ich

Gast
Hallo,
ich versuche in meinem Projekt ein Objekt der Klasse God aus einer gesicherten Datei wiederherzustellen:
Java:
try {
	FileInputStream fs = new FileInputStream("level.ser");
        ObjectInputStream is = new ObjectInputStream(fs);
	god = (God)is.readObject();
} catch (ClassNotFoundException exception) {
	System.err.println("Fehler: "+ exception.toString());
} catch (IOException exception) {
	System.err.println("Fehler: "+ exception.toString());
	}
[/Java]

Während dieses Vorgangs wirft er folgende Exception:
Fehler: java.lang.ClassNotFoundException: God

Da ich aber bereits ein Objekt der Klasse God erstellt habe und sich die Klasse (eigtl Objekt) die ich lade habe nicht von der unterscheidet mit welcher ich gespeichert habe, bin ich relativ ratlos wo das Problem liegen könnte. Hat Jemand eine Idee?

Gruß und Danke im Voraus!
 

Noctarius

Top Contributor
Klingt nach einem typischen Classloader-Visibility-Problem.
Verwendest du in deiner Application mehrere Classloader oder nutzt zu eine Umgebung wie z.B. OSGi oder Tomcat welche auf mehreren Classloadern basiert?

Das oben genannte Problem bedeutet:
Eine Class wurde durch einen, in der Hierachie, tiefer liegenden Classloader geladen. Damit kann der AppClassloader, welcher für Serialisierung genutzt wird die Klasse aber nicht sehen. Beim Suchen einer Klasse wird nur nach oben in der Hierarchie aufgelöst aber nicht nach unten.
 
I

_ich

Gast
Ich benutze eigtl. nur Standart Java in der Entwicklungsumgebung Eclipse ohne zusätzliche Plugins etc. (meines Wissens nach). Es kann höchstens dadurch sein, da ich ein Objekt deserialisieren möchte, welches in einem anderen Projekt erstellt wurde weobei beie die identische Klasse God beinhalten. Editor (speichert Objekt) ==> Nutzer (lädt Objekt)

Wie kann ich den Classloader so beeinflussen, dass er meine in Editor erstellte Klasse auch in Nutzer verwenden kann?
 

Empire Phoenix

Top Contributor
Versuch mal das Object ohne cast zu lesen und dann getClass() draufjagen, dann sollteste zumindest schonmal rausbekommen ob da wirklich ein Gott drinne ist, oder ob das problem wo anders liegt.
 
I

_ich

Gast
Kein Problem deinem Wunsch nachzukommen, aber noch ein Problem mit dem Code:
Java:
try {
		       FileInputStream fs = new FileInputStream("level.ser");
		       ObjectInputStream is = new ObjectInputStream(fs);
		       System.out.println(is.readObject().getClass());
		     } catch (ClassNotFoundException exception) {
			     System.err.println("Fehler: "+ exception.toString());
		     } catch (IOException exception) {
		    	 System.err.println("Fehler: "+ exception.toString());
		     }

Die identische Fehlermeldung:
Fehler: java.lang.ClassNotFoundException: God

Das Problem ist damit hoffentlich trotzdem klarer geworden^^
 

fastjack

Top Contributor
Benutzt Du zum Starten und kompilieren auch dieselben Klassenpfade ? Nur weil Objekte zur Laufzeit deserialisiert werden, heißt das nicht, daß das Programm sie nicht im Klassenpfad kennen muß.
 
I

_ich

Gast
Hallo,
ich habe jetzt einfach das Projekt in das andere Projekt eingebunden und ich glaube es läuft jetzt (keine Exception mehr). Dankeschön für die Hilfe.
 
T

tuxedo

Gast
Wenn du Anfangs in beiden Projekten eine Klasse "God" hattest, dann hättest du nicht nur drauf achten sollen dass beide Variablentechnisch etc. identisch sind, sondern auch dass die SerialVersionUID identisch ist. Wenn du sie weglässt dann klappts nicht, da beide potentiell ne andere ID kriegen. Also am besten immer ne eigene ID definieren und inkrementieren, wenn sich grundlegend was ändert.

- Alex
 
I

_ich

Gast
Sehr wertvoller Hinweis. Das könnte in Zukunft mal nützlich sein.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Problem mit der Serialisierung Java Basics - Anfänger-Themen 31
M Serialisierung in Java Java Basics - Anfänger-Themen 10
S Serialisierung: Laden von Objekten - Risiken? Java Basics - Anfänger-Themen 4
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
I Input/Output Alternative zur Serialisierung/ ImageJ Objecte Java Basics - Anfänger-Themen 7
W Nullpointer bei Objekt Serialisierung mit ArrayList<byte[]> etc. Java Basics - Anfänger-Themen 2
V Java Serialisierung Java Basics - Anfänger-Themen 2
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
U Serialisierung Probleme bei Umsetzung Java Basics - Anfänger-Themen 26
V Serialisierung Umbennung einer Klasse Java Basics - Anfänger-Themen 2
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
K Input/Output Serialisierung Java Basics - Anfänger-Themen 7
P Serialisierung - Objekte vergleichen Java Basics - Anfänger-Themen 4
J Input/Output Serialisierung Java Basics - Anfänger-Themen 6
K Serialisierung: speichern und auslesen, auslesen klappt nicht Java Basics - Anfänger-Themen 14
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
W Problem mit Serialisierung von jTable Java Basics - Anfänger-Themen 15
E Serialisierung - Exception? Java Basics - Anfänger-Themen 21
T Collections (De)-Serialisierung meines HashSets Java Basics - Anfänger-Themen 3
J Input/Output Serialisierung Java Basics - Anfänger-Themen 6
W Problem mit Serialisierung und TableModel Java Basics - Anfänger-Themen 3
F Sonderzeichen bei XML Serialisierung nicht konvertieren Java Basics - Anfänger-Themen 7
O Serialisierung: Object abspeichern und aufrufen Java Basics - Anfänger-Themen 6
L Java Serialisierung Singleton Java Basics - Anfänger-Themen 6
Luk10 Serialisierung bei schon vorhandener Datei Java Basics - Anfänger-Themen 15
S serialisierung Java Basics - Anfänger-Themen 3
E Alternativen zur binären Serialisierung ? Java Basics - Anfänger-Themen 9
J Serialisierung - Array-Objekt serialisieren/deserialisieren Java Basics - Anfänger-Themen 6
G Frage zu Serialisierung Java Basics - Anfänger-Themen 4
M Serialisierung erstes Beispiel Java Basics - Anfänger-Themen 4
A Per Serialisierung speichern Java Basics - Anfänger-Themen 2
DStrohma Problem mit Serialisierung Java Basics - Anfänger-Themen 3
T Threads und Serialisierung Java Basics - Anfänger-Themen 4
Z Serialisierung vs. Sicherheit Java Basics - Anfänger-Themen 2
R Serialisierung von Objekten Java Basics - Anfänger-Themen 12
S Serialisierung Java Basics - Anfänger-Themen 8
G Objekt Serialisierung Java Basics - Anfänger-Themen 3
P Serializable - Serialisierung Java Basics - Anfänger-Themen 5
P Collection Vector speichern mittels Serialisierung? Java Basics - Anfänger-Themen 2
F ClassNotFound - Email Java Basics - Anfänger-Themen 0
Helgon ClassNotFound Applet Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben