Trabajando con Axis

Guia de Apache Axis


1.Introducción a Axis

2.Instalación de Axis sobre Tomcat

3.Creación del Servicio Web

4.Activación el servicio Web

5.Creación de un cliente utilizando un Proxy generado con las herramientas de Axis

6.Creación de un cliente nativo.

7.Otros comandos y herramientas de Axis

8.Conclusiones



En Autentia nos involucramos diariamente en el desarrollo de proyectos software de diversos tipos, uno de estos sectores es el de la interoperabilidad e integración de sistemas heterogéneos distribuidos.


1. Introducción


Apache Axis es una implementación OpenSource de SOAP que proporciona un entorno de ejecución para Servicios Web implementados en Java.


A grandes rasgos, un Servicio Web es un conjunto de métodos que realizan una funcionalidad que se exponen al resto de las aplicaciones.


Cualquier aplicación sea cual sea su plataforma o lenguaje en la que está implementada podrá invocar los métodos que expone el Servicio Web.


Por ejemplo, una aplicación .Net (Implica una plataforma Windows) podría invocar métodos expuestos por un Servicio Web Java ejecutándose en una plataforma Linux.


Esto se consigue utilizando protocolos estándar como XML y HTTP y se evitan los problemas con Firewalls, etc. que otras tecnologías similares como CORBA o RMI tenían.


Entre otras cosas Axis proporciona:


  • Un entorno de ejecución para Servicios Web Java (*.jws)

  • Herramientas para crear WSDL desde clases java.

  • Herramientas para crear clientes Java desde un WSDL.

  • Herramientas para desplegar, probar y monitorizar Servicios Web.

  • Integración con servidores de aplicaciones y contenedores de Servlets.


2. Instalación de Axis sobre Tomcat

a. Descárgate la versión binaria de Axis desde http://ws.apache.org/axis/

b. Descomprime el fichero.

c. Copia el directorio completo axis al directorio: TOMCAT_HOME/webapps/axis


Para ver si Axis está instalado mostramos la URL http://localhost:8080/axis/happyaxis.jsp y nos mostrará una página de bienvenida con la configuración de Axis.



3. Creación del Servicio Web

Para crear un Servicio Web creamos las clases con la lógica y métodos que deseamos para nuestro Servicio Web. Para nuestro ejemplo vamos a crear un Servicio Web que proporcione métodos para sumar, restar, multiplicar y dividir dos números enteros.



Calculadora.java


4. Activación del Servicio Web

Ahora vamos a desplegarlo (= activarlo) en el Tomcat para que pueda ser invocado desde otra aplicación.


(Axis también proporciona un servidor Stand Alone para probar Servicios Web, pero para nuestro ejemplo nos apoyaremos en el servidor de aplicaciones Tomcat )


Para hacerlo tenemos dos formas:

  1. Renombrar el fichero Calculadora.java a Calculadora.jws y copiarlo al directorio TOMCAT_HOME/webapps/axis. (Si hemos instalado correctamente AXIS, todos los ficheros acabados en .jws serán procesados por Axis.). De esta manera la primera vez que se invoque el Web Service, será compilado automáticamente.

  2. Compilar el fichero Calculadora.java y colocamos el .class en el directorio TOMCAT_HOME/webapps/axis/WEB-INF/classes. Ahora definimos su descriptor de activación o despliegue (wsdd) y ejecutamos el comando:

java org.apache.axis.client.AdminClient Calculadora.wsdd


Calculadora.wsdd




Ahora si deseamos ver una lista de los Servicios Web activados en la máquina local ejecutamos navegamos a la dirección:

http://localhost:8080/axis/servlet/AxisServlet


Deberá aparecer nuestro Servicio Web CalculadoraWS y una lista con los métodos que exporta.





Illustration 1: Servicios Web activos




5. Creación de un cliente utilizando un Proxy generado con las herramientas de Axis

La forma más fácil y rápida para comenzar a utilizar los métodos que expone un Servicio Web es apoyarnos en un Proxy. Un Proxy o Stub no es más q un conjunto de clases que nos abstraen de los detalles de la comunicación con el WebService.


Para generar el Proxy debemos tener la especificación del Servicio Web en formato WSDL (Web Service Description Language). Este formato es un estándar de definición de servicios Web. Es independiente de la plataforma, de lenguajes de programación. Y básicamente define: donde, como y que hace un Servicio Web.


Para obtener la definición del servicio Web (WSDL) podemos realizar lo de dos formas:


  • Navegando a la dirección:

http://localhost:8080/axis/services/CalculadoraWS?wsdl


  • Ejecutando el comando:

java org.apache.axis.wsdl.Java2WSDL

-o CalculadoraWS.wsdl

-l http://localhost:8080/axis/services/CalculadoraWS

-p Calculadora.class





Illustration 2: WSDL del Servicio Web CalculadoraWS



Guardamos esa información en el fichero CalculadoraWS.wsdl .


Ahora ejecutamos el comando:


java org.apache.axis.wsdl.WSDL2Java CalculadoraWS.wsdl


Y Axis nos generará automáticamente las clases Java que hacen de Proxy para que nuestras aplicaciones puedan hacer uso de los métodos expuestos por el Servicio Web.




Compile y ejecute la aplicación para ver el resultado.



6. Creación de un cliente Nativo

Ahora vamos a hacer un cliente a manita utilizando las clases de Axis.

El cliente simplemente multiplicará dos números, pero si observa el código fuente este es bastante didáctico. Observe el texto resaltado pues estos deben ser iguales a los que contiene el WSDL. Es decir, deben coincidir la dirección del servicio, el nombre del método a invocar y el nombre de los parámetros necesarios para invocar el método.





7. Otros comandos y herramientas de AXIS

Además de los comandos mostrados anteriormente, Axis nos proporciona entre otros los siguientes comandos o utilidades:

Para obtener información acerca de la configuración de axis puede ejecutar el comando:


java org.apache.axis.client.AdminClient list


Ejecutar Axis sin Tomcat ni ningun otro servidor de aplicaciones:


java org.apache.axis.tranport.http.SimpleAxisServer <port>


Utilidad para ver y depurar los mensajes SOAP implicados en la comunicación:


Java org.apache.axis.utils.tcpmon <listeningPort> <targetServeName> <targetServerPort>



8. Conclusiones

Apache Axis es una implementación sólida, madura y extendida para ejecutar, testear y administrar Servicios Web implementados en Java. Además detrás de Axis hay importantes organizaciones como Apache, por lo que eso nos da confianza a la hora de elegir Axis como entorno de ejecución de servicios Web.


Axis nos proporciona herramientas suficientes para crear y depurar nuestros Servicios Web de una manera fácil.