com.thoughtworks.xstream.mapper.CannotResolveClassException
Это первый раз, когда я пробую XStream. Но когда я пытаюсь разобрать мой XML-файл, я получаю следующее исключение:
Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: root
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1157)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1141)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1012)
at com.mmm.transport.se.xmleditor.xml.TestXML.test(TestXML.java:20)
at com.mmm.transport.se.xmleditor.domain.Main.main(Main.java:13)
Итак, мы видим, что ошибка находится в строке 20 в моем классе testXML. И это выглядит так:
public class TestXML {
public void test() throws FileNotFoundException {
FileReader reader = new FileReader("xmlFiles/CoreDatamodel.xml");
XStream xstream = new XStream();
xstream.processAnnotations(Properties.class);
xstream.processAnnotations(Parameters.class);
xstream.processAnnotations(ObjType.class);
xstream.processAnnotations(Type.class);
Type data = (Type) xstream.fromXML(reader);
System.out.println(data);
}
}
И строка 20 это эта строка:xstream.processAnnotations(Parameters.class);
@XStreamAlias("param")
public class Parameters {
@XStreamAlias("DATATYPE")
private String datatype;
@XStreamAlias("DESCRIPTION")
private String description;
@XStreamAlias("MIN_NO")
private String min_no;
@XStreamAlias("MAX_NO")
private String max_no;
@XStreamAlias("ORDER1")
private String order1;
@XStreamAlias("NESTED")
private String nested;
@XStreamAlias("DEFAULT1")
private String default1;
@XStreamAlias("FORMAT")
private String format;
@XStreamAlias("PARAMETER")
private String parameter;
public Parameters(String datatype, String description, String min_no,
String max_no, String order1, String nested, String default1,
String format, String parameter) {
super();
setDatatype(datatype);
setDescription(description);
setMin_no(min_no);
setMax_no(max_no);
setOrder1(order1);
setNested(nested);
setDefault1(default1);
setFormat(format);
setParameter(parameter);
} //Getters and setters..
И XML выглядит так:
-
-
DataModel_Core
..
...
-
data
-
Site parameters
NULL
0
1
NULL
10008
1
1
NULL
-
nidRbc
INTEGER
RBC identity
1
1
1
0
NULL
0:16382
Другие участвующие классы выглядят так:
public class Type {
@XStreamImplicit(itemFieldName = "type")
private List types = new ArrayList();
}
public class ObjType {
@XStreamAlias("OBJECT_TYPE")
private String objectType;
public ObjType() {
} // Getters and setters
@XStreamAlias("prop")
public class Properties {
@XStreamAlias("DESCRIPTION")
private String description;
@XStreamAlias("PARENT")
private String parent;
@XStreamAlias("VIRTUAL")
private String virtual;
@XStreamAlias("VISIBLE")
private String visible;
@XStreamAlias("PICTURE")
private String picture;
@XStreamAlias("HELP")
private String help;
@XStreamAlias("MIN_NO")
private String min_no;
@XStreamAlias("MAX_NO")
private String max_no;
@XStreamAlias("NAME_FORMAT")
private String name_format;
public static Properties instance = null;
public static Properties getInstance() {
if (instance == null) {
instance = new Properties();
}
return instance;
}
public Properties() {
} // Getters and Setters.
В чем причина этой ошибки?