miércoles, 3 de septiembre de 2008

Clientes WebService con NetBeans 6.1

Leyendo el libro de descarga gratuita Mastering EJB 3.0 encuentro una referencia a la página xmethods.net donde se puede encontrar una lista de servicios web de acceso gratuito y público. Posee una gran cantidad de servicios postales/geográficos enfocados en Norteamérica. Para probar como funciona un cliente de WebService es una fuente muy buena de referencia. Ofrece una descripción básica del servicio y la referencia al fichero wsdl (wiss-dull) con el que se construye el cliente. También he encontrado el sitio: webservicex.net.

La construcción del cliente con NetBeans 6.1 no  puede ser más sencilla. Si el tipo de proyecto lo soporta (de momento sólo he encontrado que el tipo de proyecto JavaFX no lo hace),  añadimos un WebClient al proyecto, le indicamos la URL del fichero wsdl y creará todos los artefactos locales para la comunicación con el servicio. 

Una vez construidos los artefactos no tenemos más que arrastrar el método a la clase desde donde queramos hacer uso del método del servicio web para que cree un prototipo de acceso a este port. La gran mayoría de los ports que se ofrecen son tipos de datos compuestos, así que hay que añadir algún método para poder gestionar la información correctamente (.getCleanText por ejemplo para el servicio de Profanity).

La información sobre cómo está diseñado el servicio web así como todos los métodos expuestos se puede ver en la especificación del wsdl. Bajo el apartado Web Services References se tienen todos los servicios web añadidos al proyecto. Podemos abrir cada wsdl en esta vista. Una vez abierto tenemos tres tipos de vista, source, wsdl y partner, donde se detallan los ports del servicio.