Objetivo El objetivo de este tutorial es realizar una implementación de un cliente para un Web Service mediante las herramientas y facilidades que proporciona NetBeans IDE. Software necesario Para seguir este tutorial es necesario: NetBeans IDE 6.x o superior con soporte completo para Java EE Java Development Kit versión 6 o superior Glassfish Web Server Open Source Edition 3.x MySQL Server 5.x o superior. Introduccion Como se ha visto anteriormente un Web Service es un objeto que tiene todas o parte de sus funciones accesibles mediante protocolos de red. Web Service podría ser, sin embargo, solo una forma sofisticada de llamar a algo que siempre ha existido, la posibilidad de solicitar un recurso a una entidad en la red. Antiguamente ese tipo de procedimientos eran llevados a cabo utilizando tecnologías como CORBA y COM + sin embargo debido a la incompatibilidad entre las diversas tecnologías, el uso de estos recursos era algo limitado. Con la llegada de herramientas como el estándar XML y el protocolo SOAP el uso de estos recursos regresa a escena con los Web Services que no son otra cosa que objetos que ofrecen sus recursos a quienes los solicitan mediante las llamadas adecuadas y lo cual ya se trató cuando se habló de WSDL y UDDI. Actualmente existe otra tecnología llamada REST que es igualmente empleada para la creación de Web Services y es un competidor importante para las antes mencionadas. NetBeans IDE integra soporte para esta tecnología e incluye dentro de los recursos herramientas para hacer uso de algunos Web Services como son los proporcionados por Google, Amazon, Twitter entre otros de una forma sencilla. Es esta la forma en que crearemos a continuación un cliente para el Web Service de Google Maps en una aplicación web básica usando JSP y las herramientas proporcionadas por el IDE. Creando la interfaz web Comenzaremos por crear un nuevo proyecto Web Java de la forma ya conocida Haciendo click en Next obtendremos el siguiente dialogo donde indicaremos el nombre del proyecto y aceptaremos los valores restantes asignados por defecto. Al hacer click nuevamente en siguiente observaremos lo siguiente: De no ser esos los parámetros por defecto asignar los que no correspondan y dar clik en Finish Al terminar el Asistente tendremos en la ventana principal el archivo index.jsp que será nuestra pagina de inicio y en la cual crearemos un formulario HTML con dos campos de texto y agregaremos un <iframe> que contendrá el mapa cuando realicemos adecuadamente el llamado. Usaremos el asistente para formlarios que encontramos en la paleta de NetBeans (Crtl+Shif+8). Indicaremos responseJSP como la acción a realizar y GET como el método que se usara en el llamado. Y obtendremos lo siguiente en la ventana principal Ahora agregaremos los dos campos de texto y un botón de submit al formulario, a los campos los etiquetaremos como Direccion: y Zoom: y daremos ese nombre a los campos así mismo agregaremos al iframe que contendrá el resultado y agregaremos a la etiqueta del formulario el parámetro correspondiente para indicar que la respuesta a la solicitud se mostrara en el iframe. Como se vio anteriormente esto se puede realizar mediante los asistentes de NetBeans o mediante la Paleta, el resultado final debería ser el siguiente: A continuación crearemos el archivo responseJSP.jsp que se encargara de la comunicación entre el servicio de GoogleMaps y nuestro desarrollo. Usando el asistente de NetBeans para nuevo archivo sobre nuestro proyecto crearemos responseJSP.jsp AL hacer click en Finish observaremos el fichero en la ventana principal: Aquí es donde realizaremos la comunicación con el Web Service por lo cual ahora necesitamos ubicarnos en la ventana Services del IDE donde encontraremos lo siguiente al desplegar el nodo Web Services y los sub nodos correspondientes a Google Maps Arrastraremos y soltaremos el nodo indicado en la imagen a archivo responseJSP.jsp que tenemos abierto en la ventana principal debajo de la etiqueta de encabezado y el IDE nos solicitara algunos datos para personalizar la solicitud del servicio, dejaremos los que fueron asignados por defecto y daremos click en ok. Observaremos ahora que el código de responseJSP quedo de la siguiente forma: Se realizaron algunas modificaciones sobre el proyecto de las cuales se hablara posteriormente. El fichero responseJSP es ya un cliente del Web Service y para comprobarlo solo requerimos retirar el comentario en la línea 27 “out.print(“The….”)” y ejecutar el fichero. Hagamoslo. Sin embargo al ejecutarlo obtenemos lo siguiente en el navegador Asi es, ¿Dónde está el mapa? Bien, volvamos al IDE La API Key que muy amablemente nos solicita el mensaje de error es requerida por el Web Service para poder conocer el origen de las peticiones y controlar quien accede a sus recursos y puede ser obtenida de forma sencilla y gratuita como la mayoría de servicios de Google. Para fines de este tutorial usaremos una API Key obtenida previamente y la colocaremos en el archivo en que nos es solicitado API Key= ABQIAAAAP19Y9tv1qpkeMVsy_hNohT2yXp_ZAY8_ufC3CFXhHIE1NvwkxR6rrtDniBedBGRsPfWjxM-NfFiRg EL archivo al que nos referimos se encuentra en: Y al abrirlo y agregar la API Key obtendremos lo siguiente: Ejecutemos nuevamente la aplicación Ya tenemos Mapa!! Es importante para este punto remarcar que el funcionamiento de este servicio requiere una conexión a internet debido a que el recurso que estamos utilizando es proporcionado por Google dentro de internet. Ahora haremos uso de los conocimientos obtenidos en las practicas anteriores y convertiremos a response JSP en un fichero que recibe los parámetros de index.jsp y los emplea para personalizar la consulta del mapa. La solución propuesta queda de la siguiente forma: Y al ejecutar la aplicación completa y realizar una consulta nos proporcionara lo siguiente como salida en el navegador. Con lo cual podríamos considerar concluido el tutorial sin embargo quedan al aire diversas cuestiones como lo son los archivos generados por el IDE que encontramos cuando modificamos el archivo de propiedades e incluso ese archivo. Brevemente diremos que esos archivos son los encargados de la comunicación entre el Web Service y nuestra aplicación asi como de que la salida de nuestra aplicación se muestre en esa forma y para entenderlo mejor se recomienda revisar el código fuente de la pagina de salida y buscar lo que se encuentra ahí en los archivos agregados al proyecto. La API de Google Maps esta disponible en l siguiente dirección: http://code.google.com/intl/es-ES/apis/maps/ Y en definitiva no se limita a lo que se trato en este tutorial, en ese mismo sitio se nos proporcionara la posibilidad de obtener nuestra propia API Key para diversos Web Services que brinda Google tanto de forma gratuita como para uso comercial. En este tutorial se hace uso de la API de Java para RESTful WebServices que pueden encontrar en : http://jcp.org/en/jsr/detail?id=311 http://www.oracle.com/technetwork/articles/javase/index-137171.html