Hallo,
beim Deserialisieren über XStream aus einer XML bekomme ich eine ConversionException und weiß nicht, wie ich nun weitermache mit der Fehlersuche. Es geht um eine OSGi-Anwendung, die entsprechenden jars bzw Bundles sind meiner Meinung nach alle vorhanden.
Das Serialisieren klappt wunderbar, auch aus den Hibernate-Objekten. Nur beim Deserialisieren hauts nicht hin...
Die XML-Stelle, an der es abbricht, ist hier (bei "Zeile 7"):
[XML]<entry>
<db.hibernateobjects.VersuchsfallValidierungsziel>
<id>344</id>
<versuchsfall reference="../../../../.."/>
<validierungsziel>
<id>22</id>
<topziel class="db.hibernateobjects.Topziel_$$_javassist_10" reference="../../../../entry/db.hibernateobjects.VersuchsfallValidierungsziel/validierungsziel/topziel"/>
<sortierung>2</sortierung>
<bezeichnung>Änderung des Beschleunigungsverhaltens</bezeichnung>
<messgroessenValidierungsziels class="org.hibernate.collection.PersistentSet">
<initialized>false</initialized>
<owner class="db.hibernateobjects.Validierungsziel" reference="../.."/>
<cachedSize>-1</cachedSize>
<role>db.hibernateobjects.Validierungsziel.messgroessenValidierungsziels</role>
<key class="int">22</key>
<dirty>false</dirty>
</messgroessenValidierungsziels>
<versuchsfallValidierungsziels class="org.hibernate.collection.PersistentSet">
<initialized>false</initialized>
<owner class="db.hibernateobjects.Validierungsziel" reference="../.."/>
<cachedSize>-1</cachedSize>
<role>db.hibernateobjects.Validierungsziel.versuchsfallValidierungsziels</role>
<key class="int">22</key>
<dirty>false</dirty>
</versuchsfallValidierungsziels>
</validierungsziel>
<zuordnung>x</zuordnung>
</db.hibernateobjects.VersuchsfallValidierungsziel>
<db.hibernateobjects.VersuchsfallValidierungsziel reference="../db.hibernateobjects.VersuchsfallValidierungsziel"/>
</entry>[/XML]
Mein Code an der Stelle besteht eigentlich nur aus zwei Zeilen, mehr braucht man bei XStream ja *eigentlich* nicht:
Hat jemand einen Tipp oder kennt dieses Problem?
Wenn ich noch mehr Informationen posten soll, bitte Bescheid geben... ist mein erster Eintrag hier 😉
beim Deserialisieren über XStream aus einer XML bekomme ich eine ConversionException und weiß nicht, wie ich nun weitermache mit der Fehlersuche. Es geht um eine OSGi-Anwendung, die entsprechenden jars bzw Bundles sind meiner Meinung nach alle vorhanden.
Code:
Exception in thread "main" com.thoughtworks.xstream.converters.ConversionException: db.hibernateobjects.Topziel_$$_javassist_10 : db.hibernateobjects.Topziel_$$_javassist_10 : db.hibernateobjects.Topziel_$$_javassist_10 : db.hibernateobjects.Topziel_$$_javassist_10
---- Debugging information ----
message : db.hibernateobjects.Topziel_$$_javassist_10 : db.hibernateobjects.Topziel_$$_javassist_10
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : db.hibernateobjects.Topziel_$$_javassist_10 : db.hibernateobjects.Topziel_$$_javassist_10
class : db.hibernateobjects.Drehbuch
required-type : db.hibernateobjects.Validierungsziel
path : /db.hibernateobjects.Drehbuch/randbedingungen/versuchsfall/versuchsfallValidierungsziels/storedSnapshot/entry[4]/db.hibernateobjects.VersuchsfallValidierungsziel/validierungsziel/topziel
line number : 421
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:89)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:246)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:218)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:75)
at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:246)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:218)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:246)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:218)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:246)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:218)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:246)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:218)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861)
at rog.MyClass.myMethod(MyClass.java:17)
at rog.MyClass.main(MyClass.java:31)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: db.hibernateobjects.Topziel_$$_javassist_10 : db.hibernateobjects.Topziel_$$_javassist_10
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:96)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:52)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java:333)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:208)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
... 47 more
Das Serialisieren klappt wunderbar, auch aus den Hibernate-Objekten. Nur beim Deserialisieren hauts nicht hin...
Die XML-Stelle, an der es abbricht, ist hier (bei "Zeile 7"):
[XML]<entry>
<db.hibernateobjects.VersuchsfallValidierungsziel>
<id>344</id>
<versuchsfall reference="../../../../.."/>
<validierungsziel>
<id>22</id>
<topziel class="db.hibernateobjects.Topziel_$$_javassist_10" reference="../../../../entry/db.hibernateobjects.VersuchsfallValidierungsziel/validierungsziel/topziel"/>
<sortierung>2</sortierung>
<bezeichnung>Änderung des Beschleunigungsverhaltens</bezeichnung>
<messgroessenValidierungsziels class="org.hibernate.collection.PersistentSet">
<initialized>false</initialized>
<owner class="db.hibernateobjects.Validierungsziel" reference="../.."/>
<cachedSize>-1</cachedSize>
<role>db.hibernateobjects.Validierungsziel.messgroessenValidierungsziels</role>
<key class="int">22</key>
<dirty>false</dirty>
</messgroessenValidierungsziels>
<versuchsfallValidierungsziels class="org.hibernate.collection.PersistentSet">
<initialized>false</initialized>
<owner class="db.hibernateobjects.Validierungsziel" reference="../.."/>
<cachedSize>-1</cachedSize>
<role>db.hibernateobjects.Validierungsziel.versuchsfallValidierungsziels</role>
<key class="int">22</key>
<dirty>false</dirty>
</versuchsfallValidierungsziels>
</validierungsziel>
<zuordnung>x</zuordnung>
</db.hibernateobjects.VersuchsfallValidierungsziel>
<db.hibernateobjects.VersuchsfallValidierungsziel reference="../db.hibernateobjects.VersuchsfallValidierungsziel"/>
</entry>[/XML]
Mein Code an der Stelle besteht eigentlich nur aus zwei Zeilen, mehr braucht man bei XStream ja *eigentlich* nicht:
Java:
xStream = new XStream();
context.getControlServiceImpl().setDrehbuch((Drehbuch)xStream.fromXML(xmlDrehbuch));
Hat jemand einen Tipp oder kennt dieses Problem?
Wenn ich noch mehr Informationen posten soll, bitte Bescheid geben... ist mein erster Eintrag hier 😉