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:
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.
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


0