Tengo un problema para deserializar un archivo XML que se haya serializado con éxito con el marco Simple XML Serialization (simpleframework.org).Excepción con deserialización de marco XML simple
Hay an exception lanzados:
org.simpleframework.xml.core.PersistenceException: Constructor not matched for class projet.sarelo.Note
Ésta es la llamada:
Serializer serializer = new Persister();
File xmlFile = new File(path);
ContactList contactList = serializer.read(ContactList.class, xmlFile); <== Error
Mi ContactList.java
@Root(strict=false, name="ContacList")
public class ContactList {
@ElementArray (name = "Contacts")
Contact [] contact;
}
Mi Note.java
public class Note {
@Element(required=false)
private String note;
public Note(String note) {
super();
this.note = note;
}
public String getNote() {
return note;
}
}
Mi Contact.java
@Root
public class Contact {
@Attribute(name = "id")
public String id;
@Element(name="Nom", required=false)
String name;
@ElementArray(name="Phones", required=false)
Phone [] phone;
@ElementArray(name = "Emails", required=false)
Email [] email;
@ElementArray(name = "Adresses", required=false)
Adresses [] adresses;
@ElementArray(name = "Notes", required=false)
Note [] note;
public Contact(String id, String name) {
super();
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public String getId(){
return id;
}
}
Y este es el archivo XML que estoy tratando de deserializar.
<ContactList>
<Contacts length="5">
<contact id="1">
<Adresses length="0"/>
<Emails length="0"/>
<Notes length="1">
<note>
<note>dgfdg</note>
</note>
</Notes>
</contact>
<contact id="2">
<Adresses length="1">
<adresses>
<city>Paris </city>
<postcode>751234 </postcode>
<state>France</state>
<street>Pignon</street>
</adresses>
</Adresses>
<Emails length="1">
<email type="home">
<home>[email protected]</home>
</email>
</Emails>
<Nom>Nicolas Sarkozy </Nom>
<Notes length="1">
<note>
<note>Je suis le president de toute la france. Le grand president</note>
</note>
</Notes>
<Phones length="2">
<phone>
<home>+33 1234</home>
</phone>
<phone>
<mobile>+33 0612</mobile>
</phone>
</Phones>
</contact>
...
</Contacts>
</ContactList>
FYI, muy similares [aquí] (http://stackoverflow.com/q/5894320/642706) y [ aquí] (http://stackoverflow.com/q/16135304/642706) –