Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro XML

feed Foro XML Foro: XML

Nuevo Tema Nuevo Tema

Acceder al xml de un web service 17/03/2008 13:06
anonymous

Hola buenas, necesito acceder al xml generado al introducir esta url:

http://ws.audioscrobbler.com/1.0/album/Metallica/ Metallica/info.xml

Como puedo recoger este xml en java?

Y despues para tratarlo XStream ?

Si alguien me puede ayudar se lo agradezco , ya me he leido como 100 paginas del google.

Saludos!

#unapprove_message#
RE: Acceder al xml de un web service 17/03/2008 14:37
ecamacho

Necesitas crear una conexión http y con el método get obtener la respuesta del servidor que en caso de que sea correcta será el documento XML. Te recomiendo usar HttpClient de commons net: http://hc.apache.org/httpclient-3.x/tutorial.html

Como verás dicho objeto te devuelve el responseBody como un array de byte, a partir de ahí puedes crear un objeto String y pasarlo directamente a XStream que debe tener soporte para hacer parsing de XML contenidos en un String.

Sin embargo esta es solo una forma ingenua de hacerlo, te recomiendo que te mires algún framework para servicios web para tener soporte a serializacion a objetos java automática, soporte a transacciones, seguridad, etc; como JAXB2, CXF, Axis 2, etc. De entrada te pueden servir los artículos sobre jaxb2 de lasterra: http://weblogs.javahispano.org/lasterra/es/entry/java_y_xml_ con_jaxb2

#unapprove_message#
RE: Acceder al xml de un web service 18/03/2008 00:04
anonymous

Muchas gracias por la respuesta, me ha ayudado mucho, he llegado casi hasta el final...

En el ultimo paso me salta un error!

Si me pudieras decir si te suena de algo este error te lo agradeceria!!

En esta parte:

 

<------------------------------ -->

JAXBContext jaxbContext =          JAXBContext.newInstance("com.rumble.web.schemasXML.arti st.org.musicbrainz.ns.mmd_1");


Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();


Metadata leido = (Metadata) unmarshaller.unmarshal(new StringReader(xml));


resultados = (List) leido.getArtistList();

<------------------------------>

Cuando se ejecuta la linea en negrita, me salta:

javax.xml.bind.UnmarshalException: unexpected element (uri:"http://musicbrainz.org/ns/mmd-1.0#", local:"metadata").

Expected elements are <{}artist>,<{}artist-list>,<{}metadata>,&l t;{http://musicbrainz.org/ns/mmd-1.0#}name>,<{http://m usicbrainz.org/ns/mmd-1.0#}sort-name>

 

Yo creo que debe ser que el xml no coincide con las clases generadas, no se , si os suena algo, MUCHAS GRACIAS!

 

#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano