Cliente del servicio web Java (mejor manera)

Tengo un WSDL de un tercero, necesito escribir código en Java para que un cliente del servicio web invoque las operaciones en el WSDL de terceros. En este momento, he generado el apéndice del cliente utilizando la herramienta WSDL2JAVA de Axis y he usado XMLbeans para el enlace de datos.

  1. ¿Cuál es el mejor enfoque para hacer esto JAVA?
  2. Leí sobre SAAJ, parece que será un nivel de enfoque más granular.
  3. ¿Hay alguna otra manera que usar la herramienta WSDL2Java para generar el código? Tal vez wsimport en otra opción. ¿Cuáles son los pros y los contras?
  4. ¿Alguien puede enviar los enlaces para algunos buenos tutoriales sobre estos temas?
  5. ¿Cuáles son las opciones que debemos usar al generar el código usando WSDL2Java?

Usé algunas de las cosas básicas inicialmente. Ahora tengo estas opciones

 C:\axis2-1.5.1\bin>wsdl2java -uri mywsdlurl -o client -p somepackage -d xmlbeans -s -t -ssi 

    ¿Cuál es el mejor enfoque para hacer esto JAVA?

    Yo personalmente NO usaría Axis 2, ni siquiera para el desarrollo del lado del cliente. He aquí por qué me mantengo alejado de esto:

    1. No me gusta su architecture y odio su modelo de implementación contraproducente.
    2. Me parece que es un proyecto de baja calidad.
    3. No me gustan sus actuaciones (vea este punto de referencia contra JAX-WS RI ).
    4. Siempre es una pesadilla configurar dependencias (utilizo Maven y siempre tengo que luchar con la maraña de dependencias) (ver n. ° 2)
    5. Axis se aprovechó de lo lindo y Axis2 no es mejor. No, esta no es una opinión personal, hay un consenso.
    6. Sufrí una vez, nunca más.

    La única razón por la cual Axis aún está presente es porque se usa en Eclipse desde hace mucho tiempo. Gracias a Dios, esto ha sido arreglado en Eclipse Helios y espero que Axis2 finalmente muera. Hay montones mucho mejores.

    Leí sobre SAAJ, parece que será un nivel de enfoque más granular.

    ¿Hacer que?

    ¿Hay alguna otra manera que usar la herramienta WSDL2Java para generar el código? Tal vez wsimport en otra opción. ¿Cuáles son los pros y los contras?

    ¡Sí! Prefiere una stack JAX-WS como CXF o JAX-WS RI (también puedes leer sobre Metro, Metro = JAX-WS RI + WSIT ), son simplemente más elegantes, simples y fáciles de usar. En su caso, solo usaría JAX-WS RI, que está incluido en Java 6 y, por lo tanto, wsimport .

    ¿Alguien puede enviar los enlaces para algunos buenos tutoriales sobre estos temas?

    Eso es otro profesional, hay muchos tutoriales (de buena calidad) para JAX-WS, ver por ejemplo:

    • Desarrollo de clientes del servicio web JAX-WS (comience aquí)
    • Presentamos JAX-WS 2.0 con la plataforma Java SE 6, Parte 1
    • Creación de un servicio web simple y cliente con JAX-WS
    • Crear un cliente SOAP con Apache CXF o GlassFish Metro (el blog de Glen Mazza es un gran recurso)

    ¿Cuáles son las opciones que debemos usar al generar el código usando WSDL2Java?

    Sin opciones, use wsimport 🙂

    Ver también

    • Las aventuras de Elad en Java WebServiceLand
    • Axis2: ¿Por qué molestarse? en el BileBlog (prepárate para la bilis): tendrás que detener la redirección.

    Preguntas relacionadas

    • ¿Cuál es el mejor marco de servicios web de Java?
    • Spring-ws o Axis2 o algo más para el enfoque “Contrato primero” de WS

    He tenido éxito utilizando Spring WS para el cliente al final de una aplicación de servicio web – ver http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

    Mi proyecto usa una combinación de:

    • XMLBeans (generado a partir de un simple trabajo de Maven utilizando el xmlbeans-maven-plugin)

    • Spring WS: usar marshalSendAndReceive () reduce el código a una línea para enviar y recibir

    • algunos Dozer – mapeo de los XMLBeans complejos a beans simples para la GUI del cliente

    Puede encontrar algunos recursos relacionados con el desarrollo de clientes de servicios web utilizando Apache axis2 aquí.

    http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using-apache-axis2.html

    Las publicaciones a continuación dan buenas explicaciones sobre el desarrollo de servicios web utilizando Apache axis2.

    http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/

    http://wso2.org/library/136

    Algunas ideas en la siguiente respuesta:

    Pasos para crear un servicio web usando Axis2 – El código del cliente

    Da un ejemplo de un cliente Groovy que invoca las clases ADB generadas a partir del WSDL.

    Hay muchos frameworks de servicios web por ahí …