I'm new to XStream and XML to POJO conversion, so this problem is properly
quite simple and stupid.
I have the following XML string;
<response>
<status_code>0</status_code>
<result>
<item>
<fieldset>General information</fieldset>
<description>General document information</description>
<fields>
<item>
<name>Document Author</name>
<value>John Doe</value>
</item>
<item>
<name>Reference ID</name>
<value>OSMV-OPMT-LOGI-RP-11-1402</value>
</item>
</fields>
</item>
</result>
</response>
And have created the following classes;
@XStreamAlias("response")
public class Metadata {
public String status_code = "";
@XStreamAlias("result")
public List<MetadataItem> result = new ArrayList<MetadataItem>();
}
@XStreamAlias("item")
public class MetadataItem {
public String fieldset = "";
public String description = "";
@XStreamAlias("fields")
public List<MetadataField> fields = new ArrayList<MetadataField>();
}
@XStreamAlias("item")
public class MetadataField {
public String name = "";
public String value = "";
}
Running the following junit tests fails misserably;
public class MetadataTest extends TestCase {
public void testConvert() {
String testString = ...
Metadata metadata = new Metadata();
XStream xstream = new XStream();
xstream.processAnnotations(MetadataField.class);
xstream.processAnnotations(MetadataItem.class);
xstream.processAnnotations(Metadata.class);
xstream.fromXML(testString, metadata);
}
}
The trace is shown below. I dont understand the error message; It looks like
its in the MetadataField:name conversion that something goes wrong, but
thats a String. How can a CannotResolveClassException be thrown?
com.thoughtworks.xstream.converters.ConversionException: name : name : name
: name
---- Debugging information ----
message : name : name
cause-exception :
com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : name : name
class : com.logica.oam.ktree.converters.Metadata
required-type : com.logica.oam.ktree.converters.MetadataItem
path : /response/result/item/fields/item/name
line number : 1
-------------------------------
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:88)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:55)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:75)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:59)
at
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:77)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:68)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:55)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:75)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:234)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:206)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:150)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:55)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:75)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:59)
at
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:77)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:68)
at
com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:55)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:75)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:234)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:206)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:150)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
at
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:55)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:75)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:59)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:142)
at
com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:931)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:917)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:889)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:879)
at
com.logica.oam.ktree.converters.MetadataTest.testConvert(MetadataTest.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: name
: name
at
com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:62)
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.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.ArrayMapper.realClass(ArrayMapper.java:87)
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:318)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:196)
at
com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:150)
at
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:81)
... 54 more
--
View this message in context:
http://old.nabble.com/Getting-CannotResolveClassException-in-simple-XML2POJO-example-tp33308266p33308266.html
Sent from the xstream - user mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email