我试图使用XStream将XML文件解析为对象,但我得到了这个异常:
线程“主”com.thoughtworks.xstream.mapper.CannotResolveClassException:服务器中的
异常在com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56) at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30) at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55) .
这里是我的XML:
<servers>
<server>
<ip>10.196.113.27</ip>
</server>
<server>
<ip>10.196.113.31</ip>
</server>
</servers>这里是我的代码:
public class ServerIP {
private String ip;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}
public class ServerHandler {
private String fileName = "servers.xml";
private String path = "J:\\workspace\\LOG730\\src\\Q3\\";
private XStream xstream = new XStream(new DomDriver());
public void readFromXML() {
try {
FileInputStream fis = new FileInputStream(path + fileName);
ServerIP server = (ServerIP) xstream.fromXML(fis, new ServerIP());
System.out.println("Host: " + server.getIp());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}异常由以下内容触发:
ServerHandler serverHandler = new ServerHandler();
serverHandler.readFromXML();发布于 2012-05-24 15:13:17
尝试添加类服务器以保存ServerIP实例,并添加以下行:
xstream.alias("servers", Servers.class);
xstream.alias("server", ServerIP.class);在这里,您可以找到一个关于别名的简单教程:http://x-stream.github.io/alias-tutorial.html
发布于 2012-05-24 15:12:55
@XStreamAlias("server")
public class ServerIP {
private String ip;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}很抱歉答案不完整,我在做完之前就心不在焉地发表了。与此同时,特格指着这个方向。
https://stackoverflow.com/questions/10740221
复制相似问题