Я использую XStream в Kettle для десериализации 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.