Ich machte einen Webservice in Java mit einer Methode, die eine Zeichenfolge (eine generische Liste im XML-Format) zurückgibt. Ich benutze diesen Webservice von Android, und ich bekomme diese Zeichenfolge, aber nach mehreren Versuchen stürzt der Android-Emulator nur ab, wenn er versucht, die Zeichenfolge zu deserialisieren. Dies ist ein Beispiel für die Zeichenfolge ich:Deserialize/unmarshal generische Liste von XML zur Liste in Android
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<peliculas>
<pelicula>
<id>18329</id>
<poster>http://cache-cmx.netmx.mx/image/muestras/5368.rrr.jpg</poster>
<titulo>007 Operaci&oacute;n Skyfall</titulo>
</pelicula>
...
</peliculas>
Dies ist die Klasse in den Webservice:
@XmlRootElement
public class Peliculas{
@XmlElement(name="pelicula")
protected List<Pelicula> peliculas;
public Peliculas(){ peliculas = new ArrayList<Pelicula>();}
public Peliculas(List<Pelicula> pe){
peliculas = pe;
}
public List<Pelicula> getList(){
return peliculas;
}
public void add(Pelicula pelicula) {
peliculas.add(pelicula);
}
}
__ _ __ _ __EDIT_ __ _ __ _ __ _ __ _ _
Scheint, wie Sie nicht JAXB mit Android verwenden können, und es ist besser/leichte Bibliotheken dafür. also habe ich Simple XML ausprobiert. Dies ist die Methode:
public Peliculas unmarshal(String xml) throws Exception{
Peliculas peliculas = new Peliculas();
Serializer serializer = new Persister();
StringBuffer xmlStr = new StringBuffer(xml);
peliculas = serializer.read(Peliculas.class, (new StringReader(xmlStr.toString())) );
return peliculas;
}
aber ich bekomme diese Ausnahme, wie es scheint, nicht Daten im Objekt speichern:
11-12 20:30:10.898: I/Error(1058): Element 'Pelicula' does not have a match in class app.cinemexservice.Pelicula at line 3
Scheint so, als könnten Sie JAXB nicht mit Android verwenden, und dafür gibt es bessere/leichtere Bibliotheken ... also habe ich Simple XML ausprobiert. – Pundia