2014-11-12 7 views
0

я с помощью последующего кода:Зачем бросать CannotResolveClassException на XStream?

@XStreamAlias("ListOfMBDO") 
 
public class XMLListOfMBDO { 
 

 
\t @XStreamImplicit(itemFieldName = "MBDO") 
 
\t public List<ModifyBetriebsortDataObject> items = new LinkedList<ModifyBetriebsortDataObject>(); 
 

 
} 
 

 
public class ModifyBetriebsortDataObject { 
 

 
\t @XStreamAlias("PK") 
 
\t public Integer pk; 
 

 
\t @XStreamAlias("NAME") 
 
\t public String name; 
 

 
\t public ModifyBetriebsortDataObject(final Integer pk, final String name) { 
 
\t \t this.pk = pk; 
 
\t \t this.name = name; 
 
\t } 
 
} 
 

 

 
public void loadThis() { 
 
    final String test = "<ListOfMBDO><MBDO><PK>123456</PK><NAME>Test</NAME></MBDO></ListOfMBDO>"; 
 
    final XStream _xStream = new XStream(new DomDriver()); 
 
    _xStream.processAnnotations(XMLListOfMBDO.class); 
 
    _xStream.processAnnotations(ModifyBetriebsortDataObject.class); 
 
    final XMLListOfMBDO testList = (XMLListOfMBDO) _xStream.fromXML(test); 
 
}

Serializationto XML работает отлично. Но десериализация выбрасывает

com.thoughtworks.xstream.mapper.CannotResolveClassException: ....data.XMLListOfMBDO : ....data.XMLListOfMBDO 
    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) 
... 

Почему?

ответ

0

Вы можете попытаться решить ошибку десериализации, добавив

_xStream.alias("ListOfMBDO", XMLListOfMBDO.class); 
Смежные вопросы