Servicios Web para Java EE 5 en Glassfish (3)
Ya hemos visto como se hace un servicio Web en JavaEE 5 e incluso hemos buceado un poco dentro de el código "no" generado. Ahora toca ver como realizar un cliente del servicio Web.
Para ello nos vamos a ayudar del netbeans 6. Gracias a el vamos a ver como generar un cliente de un servicio Web es una tarea extremadamente sencilla. No necesitamos conocer JSRs, ni especificaciones, tan solo necesitamos la dirección del servicio Web, del resto se encarga Netbeans y JAX-WS.
El cliente del servicio Web será otra aplicación Web, por lo que el primer paso es crear un nuevo proyecto. Una vez lo tenemos creado, mediante el asistente, creamos un cliente de un servicio Web:
El asistente nos da tres opciones para introducir la dirección del descriptor del servicio Web, el archivo WSDL. Si como en nuestro caso, servidor y cliente son proyectos de Netbeans, podemos seleccionar la primera opción, project. Netbeans nos muestra la lista de proyectos con servicios Web, de la cual debemos seleccionar el servicio Web para el que queremos generar el cliente.
La otra opción, y la que más se suele usar, es la de introducir la dirección del descriptor del servicio Web. Para ello, como ya vimos en días anteriores, copiamos la dirección del servicio Web desde la consola de administración de Glassfish y la introducimos en el campo habilitado a tal efecto en el asistente:
Debemos especificar a que paquete se asignará al código generado por el asistente, en mi caso escribo
org.lasterra.glassfish.clientAl pulsar finalizar Netbeans lanza la tarea wsimport de JAX-WS y añade al proyecto una referencia al servicio Web
Para finalizar el ejemplo solo nos queda localizar el lugar donde deseamos realizar la llamada a la operación del servicio Web. Para el ejemplo seleccionamos la JSP de inicio y arrastramos allí la operación sumar.
Solo falta asignar los valores a los parametros del servicio Web, y al ejecutar la llamada a la página JSP, obtenemos el resultado
Quiero recalcar que en esta ocasión si existe un código generado por el programa wsimport de JAX-WS. Este código Netbeans lo almacena en una carpeta que no se ve desde la vista principal del proyecto. No me gusta mucho esta idea de ocultar el código, pero lo cierto es que no tenemos ninguna necesidad de modificarlo. En cualquier caso su ubicación es la siguiente:
Es interesante ver este código, también con anotaciones JSR-175, que esta compuesto por:
- Una clase con anotacion @WebServiceClient, que hace los efectos de Stub cliente del servicio Web.
- Un interfaz del servicio Web, con anotacion @WebService
- Varias clases relacionadas con el mapeo Java-XML a través de JAXB
Estaréis de acuerdo conmigo en que es imposible hacerlo más fácil.














