Soap Monitor: Monitorización de mensajes SOAP en Axis2
A veces puede ser necesario monitorizar el tráfico SOAP que es intercambiado. En este pequeño tutorial vamos a ver como configurar y usar una herramienta de monitorización de mensajes SOAP sobre el motor de servicios Web Axis2 (http://ws.apache.org/axis2/).
Las herramientas que vamos a ver a continuación vienen en la distribución oficial de Axis2, bajo los archivos axis2/WEB-INF/lib/soapmonitor-X.Y.Z.jar
y axis2/WEB-INF/modules/soapmonitor-X.YZ.mar
, pero por defecto están deshabilitadas.
En este tutorial se asume que el lector ya tiene preinstalado Axis2 en su servidor (tomcat, jboss, etc).
En caso negativo, puede hacer clic aquí para aprender a instalarlo.
Pasos a seguir:
1º) Habilitamos dentro de Axis2 el servlet SOAPMonitorService.
Para ello deberemos añadir las siguientes líneas al archivo %RUTA_AL_SERVIDOR%/webapps/axis2/WEB-INF/web.xml
SOAPMonitorService SOAPMonitorService org.apache.axis2.soapmonitor.servlet.SOAPMonitorService SOAPMonitorPort 5001 1 SOAPMonitorService /SOAPMonitor
2º) Reiniciamos el servidor sobre el que se ejecuta Axis2.
3º) Arrancamos un cliente que se comunica con el módulo
Axis2, viene con un cliente (un Applet Java) que se comunica con el servlet anterior, para iniciarlo deberemos dirigirnos a la dirección http://localhost:8080/axis2/SOAPMonitor. Si todo está correcto, deberá ver algo similar a la imagen que se muestra a continuación:
En caso de error, coloque en el %CLASSPATH% el jar axis2/WEB-INF/lib/soapmonitor-X.Y.Z.jar
o extraiga del jar las clases del Applet mediante el comando jar -xf soapmonitor-X.Y.Z.jar
y copielas en el directorio %RUTA_AL_SERVIDOR%/webapps/axis2/
.
4º) Habilitando el módulo:
Ahora, tenemos que activar el módulo sobre los servicios web (o incluso para qué métodos de que servicios web) que deseamos monitorizar.
La forma más sencilla es a través de la ventana de administración de Axis2. http://localhost:8080/axis2 y haciendo clic en el enlace Administration
.
Seleccionamos la opción apropiada, por ejemplo «Engage Module for a service»:
Seleccionamos el servicio Web que deseamos monitorizar:
Invocamos el servicio web y vemos el resultado:
http://localhost:8080/axis2/services/Version/getVersion
Otros métodos de activación:
Si desea una activación permamente del módulo, puede modificar el archivo services.xml
del servicio en concreto, añadiendo la línea:
<module ref=»soapmonitor»/>.
Por ejemplo:
com.autentia.authentication.server.impl.AuthServerSkeleton true true urn:auth urn:authResponse
Si desea una activación global del módulo, puede añadir la misma línea sobre el archivo de configuración global de axis2: %RUTA_AL_SERVIDOR/webapps/axis2/WEB-INF/axis2.xml
.
Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.
cgpcosmad@gmail.com