Configurando Axis bajo tomcat

En un proyecto reciente se estaba buscado una arquitectura orientada a servicios basada en SOAP sobre una serie de servicios ya adaptados a un sistema de control Web. El diseño en capas del sistema separa la parte correspondiente a la lógica del servicio de la interfaz Web, de forma que no era complicado publicar una interfaz SOAP para ciertos servicios…en principio.
Para ello se ha utilizado como servidor SOAP Apache Axis, por tratarse de una implementación que parece ser utilizada ampliamente y formar parte del proyecto Apache, lo cual es siempre una garantía, aunque visto lo visto, en cuanto a documentación no se trata del proyecto estrella de la fundación. El servidor Axis puede funcionar independientemente, o integrado como servlet dentro dun aplicación Web estándar. Se eligió esta segunda alternativa puesto que el resto de la lógica del sistema forma parte de una aplicación Web. A continuación se detallan los pasos seguidos para poner en funcionamiento dos servicios muy simples, pero vamos a comentar sólo el primero ya que el segundo incluye nuevos conceptos que trataremos en un nuevo capítulo.

  1. El primer paso fue copiar las librerías necesarias a la carpeta del sistema. Estas librería son axis.jar y todas sus dependencias que encontramos en la distribución binaria de axis. Se incluye el paquete “javax.rpc” que ofrece la interfaz SOAP de alto nivel para las aplicaciones.
  2. El siguiente paso fue elaborar unas clases Java en las que ofrecer el servicio. Se pensó en utilizar la clase principal de servicio pero por consideraciones de seguridad, se decidió crear una nueva clase en la que sólo se ofrezcan los métodos escogidos de forma que no se pueda saltar o llamar a algún método no especificado por fallos del servidor Axis. En nuestro caso, la clase que ofrece la interfaz SOAP es “es.captiva.qos.platform.web.service.auth.AuthenticationService”.
  3. Ya tenemos la clase que vamos a utilizar para ofrecer el servicio, así que ahora vamos a pasar a configurar Axis. Lo primero de todo es configurar el servlet de Axis, para lo cual deberemos añadir la siguiente entrada dentro del fichero “web.xml” y mapearlo a una URL.
  4. Al arrancar el servlet Axis, va a iniciar una nueva instancia del motor Axis que va a intertar cargar un fichero “server-config.wsdd” del directorio WEB-INF. Este fichero es la configuración de Axis, y no es necesario ya que el servidor Axis puede ser configurado y administrado de forma totalmente remota, pero en nuestro caso, no queremos ofrecer este punto de entrada por lo que vamos a hacer que la configuración de Axis esté definida siempre desde el arranque. Los ficheros “WSDD” son “Web Service Deployment Descriptor”, y sirven tanto para configurar un único servicio como varios, así como el funcionamiento de los componentes de Axis. Nosotros vamos a mantener la configuración centralizada en un único fichero, ya que sólo vamos a exponer 2 o 3 servicios, pero que sepáis que pueden separarse.
  5. Vamos a ver un poco más en detalle este fichero WSDD, que cómo no podía ser de otra manera, es XML. Tenemos algo de información en la página de Axis, pero es muy pobre, por lo que acabaréis echando mano de Google y las listas de correo. Nuestro fichero es el siguiente:
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s