Introducción a JAX-WS 2.0 con Java SE 6

He encontrado un enlace bastante sencillo de seguir como introducción a JAX-WS con JDK 6. No hace falta Glassfish, un Tomcat vale para estas pruebas (pero arrancado con JDK 6, claro).

La segunda parte de este artículo es aún mejor porque explica cómo hacer un simulador de un webservice “de verdad” para poder desarrollar un cliente.

Aconsejo no usar NetBeans para poder “tomar el pulso” a todo lo que está ocurriendo. (Bueno, en realidad quiero decir que uséis vuestro IDE preferido, retirando NetBeans de la categoría de IDE y pasándolo a la de generador de código). Ahora en serio, en realidad yo he usado el build.xml que viene y simplemente he tenido que cambiar en el build.properties dónde está mi JDK (y eso simplemente porque he preferido meterlo en Eclipse para ver mejor el código).

¡Ah, por cierto! No es necesario que os descarguéis el código tal y como dicen en el artículo: viene en <vuestro jdk6>/sample/webservices/EbayClient (y también EbayServer). 🙂

Por cierto, al ejecutar el dichoso “wsimport” no lo hace como una tarea ant sino que ejecuta el binario que viene con el JDK (un poco triste, pero es el estilo Sun…). De todos modos, lo peor es cuando ves lo que se genera en el paquete “ebay.apis”: ¡¡¡714 clases por 115 @webmétodos!!! Esto me recuerda un artículo sobre JAX-WS, aunque no queda bien parado…

De todos modos, si alguien se queda “con hambre”, ahí va un enlace a artículos sobre este tema.

Tagged:
  • Jose Manuel Beas

    He visto el siguiente enlace relacionado con este tema y he pensado que debía comentarlo.

  • C. Javier

    Hola, soy nuevo en esto del JAX-WS (sólo tengo experiencia con Axis) y siguiendo la primera parte del artículo me he atascado en el paso wsgen… ¿qué tengo que añadir al CLASSPATH para que me reconozca la orden desde línea de comandos? ¿se puede hacer este paso desde el Eclipse? Trabajo en Windows.

    Un saludo y muchas gracias

  • Jose Manuel Beas

    Hola, supongo que se trata más bien de un problema de PATH. O lo cambias en tu configuración de usuario/sistema o lo haces directamente en la linea de comandos (aunque luego lo perderás). 🙂

    > PATH=%PATH%;"donde tengas los ejecutables de tu JDK"

    Asegúrate de que tienes el JDK (para poder compilar con javac) y no el JRE (que es sólo el runtime).

  • C. Javier

    Hola, gracias por la ayuda pero ejecutar la herramienta sí que puedo, el problema está en que no logro de ninguna manera que encuentre la clase. En todas partes pone que hay que ejecutar ‘wsgen -cp paquete.clase’, pero claro, ¿cómo le indico yo a la herramienta dónde está el paquete? ¿Me podrías poner un ejemplo concreto de dónde deben estar la carpeta jaxws-ri y el paquete con la clase que te funcione para probarlo yo?

    Muchas gracias y perdona las molestias

  • Jose Manuel Beas

    Cuidadín, es -cp .

    El punto indica el directorio donde estás.

    Puede que sea eso sólo.

    (Lo siento, ahora mismo no tengo la infraestructura necesaria para reproducir el caso).

    ¡Ah! Y no pidas disculpas por pedir ayuda. Gracias a ti por preguntar.

  • C. Javier

    Hola otra vez,

    Esta vez no es para preguntar nada, sólo que acabo de recordar que olvidé darte las gracias por la ayuda prestada, perdón por el retraso de varios meses.

    Un saludo!

  • Jose Manuel Beas

    Nada, hombre, tampoco fue para tanto. ¿Has hecho avances? ¿Cuál es tu experiencia con JAX-WS en comparación con Axis?

    Un saludo,
    JMB

  • Jose

    Hola JMB!!
    Mira por donde he dado contigo buscando info sobre jax-ws

    Una preguntilla, ahora mismo lo más moderno en tema de webservices es hacerlo con jax-ws? o ha salido algo nuevo…
    Supongo que para sacar toda la info sobre como usar jax-ws será en GlassFish verdad?
    Bueno chico, me alegra haberte encontrado, y prometo profundizar sobre tu blog ya que a priori me ha parecido que hay muchas cosas interesantes!!!

    Un saludo…
    un ex-thales… :p

  • Jose Manuel Beas

    Pues ya ves, hace mucho, mucho, que no programo con la asiduidad necesaria para responderte. De hecho, hace mucho, mucho, que no hago nada con webservices (ya sea con JAX-WS o con lo que sea). Me atrevería a decirte que la gente está tirando mucho ahora por REST (en el sitio de glassfish creo que hacen referencia a Jersey, JAX-RS, o algo así, pero no me hagas mucho caso). Lo que pasa es que creo que la moda REST no va a ser muy duradera (es una sensación), ya veremos. Creo que está bien para algunas cosas pero, como casi todo, no es una navaja suiza (o una bala de plata). 🙂

    Yo, de todos modos, soy más pro-"contract first". Para eso Spring tiene Spring-WS. El problema que veo con JAX-WS y demás frameworks "contract last" es que parten del código Java para generar el WSDL y eso, a corto plazo está bien, pero a la larga es un problema y hay que tener mucho cuidadín. Diseñar el contrato antes te obliga a pensar (que no es poco) y hace el propio contrato sea más estable porque eres más consciente del impacto de los cambios. En cambio, poner una anotación aquí y allá es tan fácil… 🙂

    Ya me dirás qué ex-Thales eres, que así, así, no caigo… (en privado, porfa). 😉