我在 Kettle 下使用 XStream 将 XML 反序列化为 Java 对象,它总是给我一个例外:
nodecom.thoughtworks.xstream.mapper.CannotResolveClassException
然后我将我的代码与 Kettle 分开并作为一个简单的 Java 应用程序进行了尝试。它工作正常。例如:
public static void main(String[] args) {
person p = new person("JJ", "MM");
XStream xstream = new XStream(new DomDriver());
xstream.alias("personname", person.class);
String xml = xstream.toXML(p);
person pp = (person) xstream.fromXML(xml);
System.out.println(pp.toString());
}
public class person {
private String firstname;
private String lastname;
public person(String first, String last) {
this.firstname = first;
this.lastname = last;
}
public String getFirstname() {
return this.firstname;
}
public String getLastname() {
return this.lastname;
}
public void setFirstname(String name) {
this.firstname = name;
}
public void setLastname(String name) {
this.lastname = name;
}
}
这段代码运行良好。但是,当我将此代码移动到 Kettle 插件中时,它无法从 XML 文件中读取元数据。