Java - obtener xml de objeto pasado como parámetro aun WS

   
Vista:

obtener xml de objeto pasado como parámetro aun WS

Publicado por Delri (1 intervención) el 09/03/2010 13:43:59
Buenas:

He generado mediante Eclipse un cliente para un servicio web a partir de un wsdl dado siguiendo las instrucciones de esta web:

http://es.debugmodeon.com/articulo/primeros-pasos-generar-cliente-servicio-web-con-eclipse

Automáticamente se me han creado todas las clases proxy necesarias para utilizar las operaciones que ofrece dicho servicio, así como las clases que implementan y sirven para serializar los distintos objetos que se han de pasar como parámetro. He probado el servicio por encima y de momento parece que todo funciona correctamente.

Mi problema es que en cada llamada al servicio, deseo guardar en la parte del cliente un archivo XML que contenga la información del objeto pasado como parámetro al realizar la operación. Una serialización XML de dicho objeto, vaya.

Me explico:

Uno de los métodos que implementa el servicio web p.ej. es el método ENVIAR, al que se llama desde el cliente generado por Eclipse por medio de la siguiente función:

public java.lang.String enviar(ProgrammeIndicatorTableSetVersion book){ }

Eclipse me ha creado automáticamente una clase ProgrammeIndicatorTableSetVersion (que implementa la interfaz java.io.Serializable), que he instanciar en un objeto y rellenar convenientemente para a continuación efectuar la llamada al servicio. MI PREGUNTA ES SI EXISTE ALGUNA FORMA SENCILLA Y RÁPIDA DE OBTENER EL XML DE DICHO OBJETO, ES DECIR, DE SERIALIZARLO A XML y poder guardarlo yo en un archivo desde el cliente una vez que lo he mandando correctamente (es para una especie de histórico que me exigen llevar). El resultado debería ser un documento xml con contenido válido que pudiese ser validado contra el Schema que hay dentro de la etiqueta types del archivo wsdl del servicio web.

Supongo que debe haber una manera sencilla de hacerlo, puesto que el mismo cliente serializa dicho objeto dentro del SOAP envelope para realizar la llamada la servicio web, pero francamente no encuentro el modo. Espero haberme explicado correctamente. En cualquier caso, si no entendéis algo preguntadme e intentaré hacerme entender mejor.

Un saludo y muchas gracias de antemano a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder