Так что я пытаюсь сериализовать простой объект в XML-файл, используя библиотеку XStream.XStream не может десериализовать XML из-за NoClassDefFoundError
Они приводят к следующему исключению: жалоба на класс Person не найден. Я попытался добавить аннотации XStream к классу Person, но это тоже не имело успеха.
Что такое правильный способ (де) сериализации объектов с использованием библиотеки XStream для
Exception in thread "main" java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException
at com.thoughtworks.xstream.XStream.<init>(XStream.java:350)
at XMLTest.main(XMLTest.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
Для полноты я добавляю мой код ниже.
import com.thoughtworks.xstream.XStream;
public class XMLTest {
public static void main(String[] args) {
Person john = new Person("John", "Doe", 1234);
XStream xstream = new XStream();
String xml = xstream.toXML(john);
Person newJohn = (Person) xstream.fromXML(xml);
System.out.println("Hi " + newJohn.getFirstname());
}
}
и
public class Person {
private String firstname;
private String lastname;
private int age;
public Person(String firstname, String lastname, int age) {
this.firstname = firstname;
this.lastname = lastname;
this.age = age;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Я думаю, что этот пост http://stackoverflow.com/questions/21664249/xstream-xmlpullparserexception имеет ответьте на ваш вопрос. –