Axis2: Invocación de Servicios Web usando distintos MEP

0
8983

Axis2: Invocación de Servicios Web usando distintos MEP

Introducción.

En este tutorial vamos a llevar a la práctica la invocación de servicios web a través de cada uno de los patrones de intercambios de mensajes (MEP) definidos en WSDL 2.0.
Para ello, vamos a realizar una aplicación de escritorio en donde utilizaremos el API de cliente de Axis2 para invocar la única operación que expone el servicio Web construido en un tutorial anterior » Spring WS: Creación de Servicios Web con Spring con cada uno de los MEP.

Manos a la obra con la aplicación cliente:

El siguiente ejemplo está construido bajo el siguiente entorno:

  • HP Pavilion.
  • Windows Vista Home Premium.
  • Eclipse Ganymede.
  • Java 6.
  • Tomcat 6
  • Maven 2.
  • Plugin Maven 4QE para Eclipse.
  • Axis2 1.4.1

Si después de leer este tutorial quieres probarlo tu mismo, en los siguientes enlaces te dejo lo necesario:

  • El servicio web en formato WAR, por lo que simplemente deberás desplegarlo en tu servidor o contenedor favorito.
  • La parte cliente (proyecto Maven2 y Eclipse) que vemos en este tutorial.

Para poder utilizar los servicios que ofrece un web service necesitamos conocer su descripción o WSDL.
Esta casi siempre es publicada por el servicio web a través de una URL, por ejemplo: http://localhost:8080/bibliotecaWS/bibliotecaWS.wsdl)

WSDL del servicio web a invocar con distintos MEP:

Si nos fijamos en el WSDL observamos que (de cara al código fuente que veremos a continuación):

  1. El servicio Web tiene dos wsdl:port de comunicación (líneas 83 a 88)
  2. Sólo hay definido un Servicio Web (líneas 82-89)
  3. Sólo hay definida una operación BooksInfo (líneas 72 a 80)
  4. El formato de la petición a la única operación es el siguiente (líneas 12-26):

Axis2MEPApp: Ejemplo del uso el API de cliente de Axis2 para conseguir invocar un método con distintos patrones de intercambio de mensajes (MEP).

A continuación contruiremos una aplicación de escritorio en donde al ejecutarla podremos elegir el método de invocación al servicio Web: In-Out sincrono, In-Out asíncrono, etc.

El código fuente está autocomentado.

MyAxisCallback: Implementación de un AxisCallback para las operaciones asíncronas.

Archivo de configuración de Maven 2: pom.xml:

Por si te sirve de plantilla para otros proyectos, te dejo el pom.xml del proyecto.

Referencias

Conclusiones

Como veis el API de cliente Axis2 es bastante facil de usar y comprender, siendo además bastante ligero en cuanto número de clases e interfaces.

Aunque con la clase ServiceClient podemos satisfacer la mayoría de nuestras necesidades de cliente, tenemos disponible la clase OperationClient para operaciones más avanzadas, como por ejemplo manipulación de cabeceras.

Existen otros patrones MEP en los que es el servidor el que inicia la comunicación Out-Only, etc. ver WSDL 2.0, pero estos se consigen de la misma forma
que la que ya hemos visto, siempre y cuando el servidor conozca las direcciones de los clientes. Si estais interesados podeis mirar los ejemplos de la distribución para profundizar más….

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

Dejar respuesta

Please enter your comment!
Please enter your name here