Servicios Web para Java EE 5 en Glassfish (3)

02:07AM jun 04, 2007 en categoria Java por Enrique Rodriguez Lasterra

Etiquetas:


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:

Inicio Asistente Cliente de Servicio Web con Netbeans 6

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.

Asistente Cliente de Servicio Web con Netbeans 6, selección descriptor en proyecto

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:

Dirección del WSDL en la consola de administración de Glassfish Pegar la dirección del WSDL en el campo del asistente y especificar el paquete

Debemos especificar a que paquete se asignará al código generado por el asistente, en mi caso escribo

org.lasterra.glassfish.client
Al pulsar finalizar Netbeans lanza la tarea wsimport de JAX-WS y añade al proyecto una referencia al servicio Web 

Generación de código a través de wsimport y visualización de referencia al servicio Web en el proyecto

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.

Arrastrar la operación del servicio Web al lugar donde realizar la llamada Código generado por Netbeans para realizar la llamada

Solo falta asignar los valores a los parametros del servicio Web, y al ejecutar la llamada a la página JSP, obtenemos el resultado

Resultado llamada a servicio Web suma

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:

Localización código generado por wsimport en Netbeans 6

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.

Web services for Java EE 5 in Glassfish (3)
Comentarios:

Enviar un comentario:
Los comentarios han sido deshabilitados.