La Virgen

La Virgen
Primavera en la Virgen

sábado, 5 de marzo de 2011

Web Services en Java (ahora con Tomcat)

Buenas noches amiguetes de la taza:
Hace unos días subí un post sobre cómo crear servicios web en java utilizando el servidor de aplicaciones de Sun. Esto es el servidor GlassFish. Bien, hoy vuelvo a dirigirme al lector volviendo a hablar de los servidores web en java. En este caso vamos a utilizar para lanzarlo el servidor de aplicaciones Apache Tomcat 6.x. Muchos pueden opinar que la versión 5.5 de esta aplicación es más estable, más rápida, más bonita… o que simplemente le gusta más. Por mi estupendo, pero yo lo he hecho con la versión 6.x por su sencillez. La cual no he encontrado en las versiones anteriores.
Para comenzar lo lógico y normal es tener un servidor de Apache Tomcat 6.x funcionando. Pero claro, se que habrá alguno que esto ya se le queda grande. Por esta razón en unos días publicaré cómo montar este servidor. Pero por hoy voy a partir desde la base de que ya tenemos montado y funcionando tomcat en nuestro ordenador (o en otro al que tengamos acceso y administración).
Para preparar el tomcat para arrancar servicios web (también llamado ‘deploy’ y a partir de ahora lo llamaré así) necesitamos las librerías de deploy. Las encontraremos en la página web de tomcat. Si accedemos a ella podremos descargarlo en un zip, suele llamarse algo así como ‘deployer’. Dentro de este zip encontramos varias carpetas y archivos. Lo que nos importan a nosotros es la carpetalib y el archivo build.xml. El contenido de la carpeta lib debemos de copiarlo dentro de la carpeta lib del directorio de tomcat. Esto es, si estamos en linux y tenemos tomcat en /usr/local/tomcat, tendremos también una carpeta lib en /usr/local/tomcat/lib (En windows sería algo como C:/Archivos de programa/Tomcat por ejemplo). Debemos de copiarlos dentro de esta carpeta. Lo mismo haremos con el archivo build.xml, pero éste lo copiaremos a la carpeta conf del directorio de instalación de tomcat. De esta manera ya hemos instalado el deployer.
No hemos acabado aún los preparativos, nos falta instalar Axis2. Axis2 es el que nos va a hacer el autodeploy de nuestros servicios web. La instalación de éste es bastante más sencilla. ¿Más sencilla aún que copiar una serie de archivos en una carpeta? Pues si, porque sólo hay que copiar un archivo xD. Para ello accedemos a la página web de axis2: http://ws.apache.org/axis2. Descargamos el archivo war de axis2. Este archivo se descarga en un zip y dentro tenemos el axis2.war. Este archivo debemos de meterlo dentro del directorio webapps del servidor tomcat (si no sabes dónde se encuentra este directorio, mal vas -> <directorio_tomcat>/webapps). Hecho esto detenemos el servicio de tomcat y volvemos a lanzarlo.
¡BIEN! ya tenemos todo lo necesario para comenzar y para terminar. Si si, terminar. Montar un servicio web cuando ya tenemos todo el chiringuito montado es una tontería. Creamos un servicio web con netbeans (debemos de crear el servicio web con un servidor por defecto de tomcat. Sino lo hacemos así no funcionará). Recomiendo ver el post de cómo crear un servicio web con netbeans (tu haz lo que quieras. También puedes pensar: -yo soy un macho, me lo voy a currar sin mirar que aprendo más. -Pues nada, a tu rollo).
Cuando tenemos creado el servicio web de netbeans, cogemos el .war que nos ha generado y lo copiamos exactamente en la misma carpeta donde copiamos el de axis2, esto es en la carpeta dewebapps. Hecho esto detenemos el servicio y volvemos a lanzarlo.
¡YA ESTÁ! si tio, se acabó la historia. El servidor tomcat 6.x tiene por defecto la estupenda costumbre de autoarrancar los .war que dejamos en webapps. ¿Cómo?, ¿que no te lo crees?… (hombre/mujer de poca fe) ¡Que no joder!, ¡Hay que probarlo!
Para probar el servicio web tenemos que tener claros los nombres que hemos utilizado al crear el servicio web. Por un lado tenemos el nombre del archivo que es el nombre que acompaña al .war que hemos copiado en webapps. Por otro lado tenemos el nombre del servicio web. Este nombre es el que le pusimos cuando creamos en el proyecto el servicio web. Para ver si el servicio web ha sido lanzado por nuestro servidor accedemos al servidor tomcat: http://localhost:8080. Hecho esto accedemos a la parte de mantenimiento: ‘Tomcat Management’:
Ventana principal de Tomcat
Ventana principal de Tomcat
Una vez dentro encontramos todos los servicios arrancados. En nuestro ejemplo no hemos montado ninguno. Pero por ejemplo tenemos el de Axis2 que hemos copiado antes. Si nuestro archivo se llamaba calculadora.war, debería de aparecer una entrada con el nombre: calculadora/.
Si, ya se que esto es muy bonito, y soy consciente de que lo que queréis es cómo acceder al WSDL. Al fin y al cabo es lo más interesante de todo esto. Para ello accederemos a la página: http://localhost:8080/<nombre_del_archivo>/<nombre_del_servicio>?wsdl. ¿Y con esto ya está?Pues si, si consigues acceder al XML que describe el servicio web, ya tienes el servidor preparado para aceptar peticiones al servicio web. Por otro lado puedes acceder a la página web para probar el servicio: http://localhost:8080/<nombre_del_archivo>/<nombre_del_servicio>?wsdl.
Bueno, espero haber sido de ayuda en vuestras dudas.
Salu2 a todos :) .

No hay comentarios:

Publicar un comentario