Java - Dudas Web service con Axis2 y Rampart

   
Vista:

Dudas Web service con Axis2 y Rampart

Publicado por Mike_HDF (2 intervenciones) el 06/10/2015 18:18:57
Hola, soy un novato en lo que a Web services se refiere y tengo un problema a la hora de obtener los archivos java a partir de un WSDL.

Los desarrolladores de la parte servidora me han dado esta información:

Debo generar el fuente haciendo un binding a xmlbeans mediante Axis2 y Rampart. Las peticiones deben ser firmadas con un certificado dado de alta en sus sistemas (lo tengo) e incluir una TimeStamp (cosa que Axis1, que es de lo poco que había manejado antes para atacar a otro web service, no crea).

Por tanto, he descargado las últimas versiones estables de Axis2 y Rampart y usado la siguiente línea de comando sin que me diera errores:

wsdl2java -d xmlbeans -uri https://juntadeandalucia.e-factura.net/puef/services/SSPPWebServiceProxyService?wsdl -o .\src\

No tengo ni idea de cómo configurar Rampart (sólo he copiado los módulos en la carpeta repository/modules de la carpeta de Axis2) y tampoco sé si eso influirá en el resultado, el caso es que, siguiendo los ejemplos de la web de Apache, no puedo usar los java tal cual.

Por ejemplo, para usar el método consultarFactura necesitaría escribir un código como el siguiente, según la web de Apache:

1
2
3
4
SSPPWebServiceProxyServiceStub webservice = new SSPPWebServiceProxyServiceStub(url);
ConsultarFacturaDocument doc = ConsultarFacturaDocument.Factory.newInstance();
doc.setNumeroRegistro(numeroRegistro);
return webservice.consultarFactura(doc); //Devolvemos la respuesta

Pero setNumeroRegistro() no es un método de ConsultarFacturaDocument (que es un interfaz), si no de una interfaz hija de la primera llamada ConsultarFactura.

¿Me ha generado wsdl2java el código de forma incorrecta?
¿Debo hacer algo más antes de generar el código o empezar a usar las clases generadas?
¿Puedo usar otro framework que genere un código más limpio? (He probado cxf, pero su wsdl2java me genera distintos errores, dependiendo de si uso el binding a xmlbeans o no)

Gracias de antemano.
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

Re: Dudas Web service con Axis2 y Rampart

Publicado por Mike_HDF (2 intervenciones) el 07/10/2015 18:54:23
Me auto respondo:

El ejemplo de la web Apache no era correcto para nada, he encontrado otro ejemplo en una web de IBM que indica que la forma correcta sería la siguiente:

1
2
3
4
5
6
7
SSPPWebServiceProxyServiceStub webservice = new   SSPPWebServiceProxyServiceStub(url);
ConsultarFacturaDocument docd = ConsultarFacturaDocument.Factory.newInstance();
ConsultarFacturaDocument.ConsultarFactura doc = docd.addNewConsultarFactura();
doc.setNumeroRegistro(numeroRegistro);
docd.setConsultarFactura(doc);
 
return webservice.consultarFactura(docd);

No obstante sigue sin ser viable el código generado por Axis2 dado que los arrays que están incluidos en el wsdl son de tipo soap-enc y, por lo que he leído, entiendo que no están soportados por el framework (La clase ArrayOfSSPPFicheroAnexo generada, por ejemplo, no tiene los métodos propios de un array). O los devs me han engañado o estoy muy perdido...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Re: Dudas Web service con Axis2 y Rampart

Publicado por xve (261 intervenciones) el 07/10/2015 21:13:30
Gracias por compartirlo Mike!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar