sábado, 25 de mayo de 2013

Desplegando un servicio axis2 en un servidor Tomcat.

clip_image002

A veces se nos pide un requerimiento dentro de proyecto de que expongamos determinadas funcionalidades vía servicios web.

Mi solución más rápida es crear un servicio en axis2 y desplegarlo en un servidor tomcat usando el mismo axis2. Veamos cómo:

Paso 1: crear el servicio axis2.

Paso 2: descargarnos el tomcat y el war del axis2 y desplegar axis2 como una aplicación dentro de tomcat.

Paso 3: desplegar el servicio dentro del axis2.

El paso 1 se puede realizar de diferentes vías. Buscando en google hay una explicada en español que salió ayer y viene como anillo al dedo para los fan de wso2. La pueden encontrar aquí.

El paso 2 es cosa de buscar las instalaciones tanto del tomcat como de axis2, descargarlos y ya. El war de axis2 debe ser desplegado como una aplicación más dentro del tomcat.

El tomcat tiene esta esta forma cuando lo descompactan.

clip_image003

En la carpeta bin lo más interesante son los ejecutables startup.sh o .bat para iniciar el servidor y el shutdown.sh o .bat para apagar el servidor. sh para linux y .bat para Windows

En la carpeta conf tenemos el fichero server.xml para la configuración de los puertos y cosas de seguridad relacionadas con los certificados si queremos usar https. También tenemos el fichero tomcat-users.xml para los usuarios iniciales del tomcat.

En la carpeta webapps es donde ponemos nuestros war, las aplicaciones, para que sean desplegadas y luce así.

clip_image005

Lo que haré ahora es tomar el war de axis2 y ponerlo en esta carpeta y arrancar el servidor. En mi caso estoy usando la versión axis2-1.6.1-war del axis2, ustedes pueden usar la más actual.

Cuando inician el server puede ir al navegador y poner esta url: http://localhost/axis2/ tengan en cuenta que estoy usando el puerto 80, si usaran el 8080 tendrían que especificarlo en la URL.

Verán algo como esto.

clip_image007

Como ven todo muy fácil y sin complicación.

Ahora vamos al paso 3. Buscamos nuestro servicio en axis2 que tendrá extensión .aar y lo copiaremos en [TOMCAT]\webapps\axis2\WEB-INF\services\ donde [TOMCAT] es la ubicación del servidor de tomcat. Usaré este servicio Echo.aar

Cuando lo hagan verán un error como este en la consola:

clip_image009

Bueno, no es que todos los tutoriales funcionan a la primera, se preguntarán. En este caso es intencional y el error se debe a que el servicio que escogí, que no es que siempre pase, se expone tanto a través de http como de https y el axis2 ni el servidor tomcat fueron configurados para soportar https.

Una solución puede ser habilitar el https, pero lo que haremos será deshabilitar este transporte en el fichero services.xml del servicio.

Para hacerlo deben meterse dentro del .aar del servicio y buscar esta ruta: Echo.aar\META-INF\ services.xml

Cuando lo abran verán lo siguiente:

clip_image011

Eliminan o comentan esta línea <transport>https</transport> y listo. Solo tienen que reiniciar el servidor y el error se habrá ido y podrán ver el servicio a través de la aplicación web de axis2.

Van a http://localhost/axis2/ dan clic en Services y ya está.

clip_image012

Si dan clic en “echo” podrán acceder al WSDL del servicio.

Luego es cosa de consumirlo nada más.


¿Te ha gustado este Post? Compártelo con tus amigos.

No hay comentarios:

Publicar un comentario

IconIconIcon