Introducción
Glassfish Wsmonitor es un monitor de de tráfico HTTP y SOAP. Intercepta y presenta los mensajes de SOAP y las cabeceras de las peticiones HTTP. Esto es útil para, por ejemplo ayudar a diagnosticar un problema que tenga que ver con la interpretación de ciertos valores de una cabecera, o para comprender cómo se comunican el cliente y el servidor de un webservice
Primeros pasos
Para esta prueba de concepto, vamos a utilizar los servicios web de ejemplo que vienen con la distribución de Axis2, cuya instalación se explica en el tutorial sobre RESTful en Axis2.
Y ya lo tenemos funcionando…
Ahora vamos a descargar e instalar Glassfish WsMonitor…
Vamos a la página de Glassfish, https://glassfish.dev.java.net//, y pinchamos en “Tools”, en la parte de arriba y, en el menú que se despliega, seleccionamos “Wsmonitor”. Vamos a probar la versión 1.1 (la última disponible cuando se hizo el tutorial)
Ya la tenemos descargada
Y ahora vamos a seguir las instrucciones de instalación de la página. Lo primero que vemos es que necesitamos Java 5 (jdk1.5.0). Podemos comprobar nuestra versión ejecutando el comando “java –version” desde línea de comandos:
Y ejecutamos el comando que nos dicen en la página (java -jar wsmonitor-installer-XX.jar
)
Y el resultado obtenido es
Pruebas de la aplicación
Ahora vamos a probar el producto, siguiendo las indicaciones de la página. Se nos dice que por defecto el monitor escucha por “localhost:4040” y redirige a “localhost:8080”… esta configuración predeterminada nos vale, por lo que vamos a arrancar directamente…
La aplicación tiene este aspecto…
Ahora vamos a probar el ejemplo de servicio web anterior (el de la versión de Axis). La ruta de acceso al servicio era
http://127.0.0.1:8080/axis2/services/Version/getVersion
Nosotros necesitamos transformarla para que pase por el monitor… que escucha en el puerto 4040, o sea que la ruta quedaría:
http://127.0.0.1:4040/axis2/services/Version/getVersion
Probamos a invocarla y… vemos que el servicio nos responde
Y que el monitor ha interceptado el tráfico… tanto el HTTP
Como el SOAP
Vale, pero… ¿y si la configuración estándar no vale?
Como se explica en la página del producto, existe la posibilidad de pasar un fichero de configuración especificando nuestros valores específicos. Vamos a comenzar por cambiar la configuración de nuestro servidor Tomcat para que escuche por el puerto 9090 (modificando el server.xml).
Abrimos el fichero de configuración de wsmonitor: wsmonitor/etc/config.xml, que tiene este aspecto
Y lo modificamos para decirle que queremos escuchar en el puerto 4242 y redirigir al 9090. Este es el aspecto final.
Además de modificar los puertos, hemos eliminado la segunda conexión, que no nos era necesaria. Probamos y…
¡¡¡Sigue funcionando!!!
Conclusiones
Como veis, desde Autentia nos gusta proporcionaros soluciones sencillas a problemas que, al final, acabamos sufriendo todos. Aquí os hemos presentado un nuevo producto gratuito que puede ayudarte a resolver problemas o a entender mejor el funcionamiento de un webservice… Esto sólo ha sido un pequeño ejemplo, en vuestra mano queda ampliarlo…