====== Mostrar los mensajes de Entrada/Salida en el Sistema de Log ====== === Prerequisitos === * En el POM principal del proyecto, el //// tiene que tener la versión 2.0.29 (o 2.0.29-primefaces6). * En el POm del modulo web comprobamos is existe el artefaco //fundeweb-jaxws//, sino existe lo añadimos justo debajo del artefacto //fundeweb-jaxrs//: es.um.atica.fundeweb fundeweb-jaxws * Realizamos una //Maven --> Update project//. * Verificar que en //Maven Dependencies// aparezca una nueva dependencia con nombre //fundeweb-jaxws//. === Modo de Empleo === Para poder mostrar los mensajes de Entrada/Salida de un servicio WEB SOAP, vamos a utilizar un //SOAPHandler//. En nuestro servidor (clase que implementa el servicio web) o cliente de servicio web tenemos que añadir @HandlerChain(file = "es/um/atica/jaxws/handlers/log-handler.xml") debajo de las anotaciones **//@WebService// (para el servicio web)** y **//@WebServiceClient// para el cliente del servicio**. Un ejemplo: package ticarum.cursosoa.calculadora.servicio; import javax.jws.HandlerChain; import javax.jws.WebService; import org.jboss.seam.log.Log; import org.jboss.seam.log.Logging; @WebService(serviceName = "CalculadoraSEIService", portName = "CalculadoraSEIPort", targetNamespace = "urn:ticarum:cursosoa:calculadora:servicio", wsdlLocation = "WEB-INF/wsdl/calculadora.wsdl", endpointInterface = "ticarum.cursosoa.calculadora.servicio.CalculadoraSEI") @HandlerChain(file = "es/um/atica/jaxws/handlers/log-handler.xml") public class CalculadoraSEIImpl implements CalculadoraSEI { private static final Log LOG = Logging.getLog(CalculadoraSEIImpl.class); ... } Ahora nos apareceran los mensajes de entrada/salido en el sistema de log de la aplicación. Además se incluye un número de secuencia en estos para poder relacionar la pareja de mensajes. Recordad que en los servicios web //OneWay//, no hay mensaje de respuesta. Ejmplo de mensajes: 24 jul 2018 14:06:50,541 DEBUG (SoapLogRequestHandler.java:170)- [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] - Usuario: ANONIMO-1532434010307 - Glasfish Metro Soap Inbound Message - 1 /*---[ HTTP request - 1 ]-----------------------------------*/ Accept: application/soap+xml, application/dime, multipart/related, text/* Cache-Control: no-cache Connection: close Content-Length: 365 Content-Type: text/xml; charset=utf-8 Host: localhost:8001 Pragma: no-cache SOAPAction: "" User-Agent: IBM Web Services Explorer 1 1 /*-----------------------------------------------------------------------*/ 24 jul 2018 14:06:50,551 INFO (CalculadoraSEIImpl.java:35)- [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] - Usuario: ANONIMO-1532434010307 - Ejecutando la operacion suma 24 jul 2018 14:06:50,551 DEBUG (CalculadoraSEIImpl.java:37)- [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] - Usuario: ANONIMO-1532434010307 - Parametros de entrada. Parametro parameters: ticarum.cursosoa.calculadora.servicio.SumaRequest@4c3cdb79 24 jul 2018 14:06:50,571 DEBUG (SoapLogRequestHandler.java:170)- [[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'] - Usuario: ANONIMO-1532434010307 - Glasfish Metro Soap Outbound Message - 1 /*---[ HTTP response - 1 ]-----------------------------------*/ 2.0 /*-----------------------------------------------------------------------*/ El tamaño maximo de mensaje que se imprime es de 4096 bytes (4KB). Cuando un mensaje tiene un tamaño mayor, se trunca el mensaje por ese byte. Si se quiere que el tamaño del mensaje sea mayor, tenemos que editar el fichero //web.xml// añadiendo: es.um.atica.jaxws.handlers.SoapLogRequestHandler.dumpThreshold 1048576 en el ejemplo aumnetamos el limite a 1048576 bytes (1MB). Por defecto cuando se añade este //SoapHandler//, solo se vera el log en los entornos **local** y **desarrollo**. Para que se vean los mensajes en el fichero de los en los entornos de en pre-producción y producción, tenemos que añadir en el fichero //log4j.xml// lo siguiente: ---- --- //[[juanmiguel.bernal@ticarum.es|JUAN MIGUEL BERNAL GONZALEZ]] 24/07/2018 13:23//