Castor unmarshal von XML Dokument - ClassCastException aufgrund vom falschen ClassLoader?

redbomber

Bekanntes Mitglied
Hallo zusammen,
also ich weiß nicht genau ob der Titel von diesem Thema wirklich die Ursache von meinem Problem ist, aber das ist das einzigste was ich herausgefunden habe.

Ich möchte eine XML-Datei unmarshallen. Dazu verwende ich die library org.exolab.castor.
D.h. ich habe eine Java-Klasse mit den definierten Felder. Ein XML-Dokument, in dem ich die Werte für die Felder definiere und noch eine Mapping-Datei, welche castor sagt, welche Werte auf welche Felder gemappt werden.

Jetzt kann ich das ganze von Eclipse aus problemlos ausführen. Alle Felder werden gesetzt.
Wenn ich aber ein Jar-File aus meinem Tool erzeuge (in eclipse > Export > Runnable Jar File) und dieses Jar-File dann ausführe gibt es immer eine ClassCastException:

java.lang.ClassCastException: module.Configuration cannot be cast to module.Configuration

Diese Fehlermeldung sieht schonmal seltsam aus, da es sich ja um dieselbe Klasse handelt.

Wenn ich mir dann von der Klasse module.Configuration, sowie von dem Object, welches mir Castor zurück liefert den Classloader logge, dann sehe ich folgendes. Hier der Code wo ich den Namen der ClassLoader logge:

Code:
logger.info(lObject.getClass().getClassLoader().toString() + " | " + Configuration.class.getClassLoader().toString());

In Eclipse (wo alles gut geht) sind die Classloader identisch:
sun.misc.Launcher$AppClassLoader@fabe9 | sun.misc.Launcher$AppClassLoader@fabe9

Nun aber im Log vom ausgeführtem Jar-File (wo es nicht geht):
sun.misc.Launcher$AppClassLoader@41556f4c | java.net.URLClassLoader@62a23d38

Jetzt komme ich nicht mehr weiter. Ich kann euch jetzt garnicht mehr erklären, da ich es ab hier nicht mehr verstehe...

Wisst ihr hier vielleicht weiter?
Vielen Dank!
 
Zuletzt bearbeitet:
Wäre zwar nur ein Workaround, aber du kannst den Classloader ja auch explizit setzen... Vielleicht bringt dich das weiter. Ich selbst wüsste aus dem Stehgreif da auch sonst nicht direkt weiter (selbst noch nicht erlebt).
 

Neue Themen


Zurück
Oben