diff --git a/core/src/main/java/org/springframework/ws/client/core/WebServiceTemplate.java b/core/src/main/java/org/springframework/ws/client/core/WebServiceTemplate.java index cf38ef11..efd47e85 100644 --- a/core/src/main/java/org/springframework/ws/client/core/WebServiceTemplate.java +++ b/core/src/main/java/org/springframework/ws/client/core/WebServiceTemplate.java @@ -16,6 +16,7 @@ package org.springframework.ws.client.core; +import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.xml.transform.Result; import javax.xml.transform.Source; @@ -270,6 +271,7 @@ public class WebServiceTemplate extends WebServiceAccessor implements WebService if (tis != null) { try { messageContext.readResponse(tis); + logResponse(messageContext); if (messageContext.hasResponse()) { WebServiceMessage response = messageContext.getResponse(); if (!hasFault(connection, messageContext)) { @@ -308,6 +310,14 @@ public class WebServiceTemplate extends WebServiceAccessor implements WebService /** Sends the request in the given message context over the connection. */ private void sendRequest(WebServiceConnection connection, MessageContext messageContext) throws IOException { + if (logger.isTraceEnabled()) { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + messageContext.getRequest().writeTo(os); + logger.trace("WebServiceTemplate sends request [" + os.toString("UTF-8") + "]"); + } + else if (logger.isDebugEnabled()) { + logger.debug("WebServiceTemplate sends request [" + messageContext.getRequest() + "]"); + } TransportOutputStream tos = connection.getTransportOutputStream(); try { messageContext.getRequest().writeTo(tos); @@ -328,6 +338,22 @@ public class WebServiceTemplate extends WebServiceAccessor implements WebService } } + private void logResponse(MessageContext messageContext) throws IOException { + if (messageContext.hasResponse()) { + if (logger.isTraceEnabled()) { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + messageContext.getResponse().writeTo(os); + logger.trace("WebServiceTemplate receives response [" + os.toString("UTF-8") + "]"); + } + else if (logger.isDebugEnabled()) { + logger.debug("WebServiceTemplate receives response [" + messageContext.getRequest() + "]"); + } + } + else if (logger.isDebugEnabled()) { + logger.debug("WebServiceTemplate receives no response for request [" + messageContext.getRequest() + "]"); + } + } + /** Adapter to enable use of a WebServiceMessageCallback inside a WebServiceMessageExtractor. */ private static class WebServiceMessageCallbackMessageExtractor implements WebServiceMessageExtractor { diff --git a/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java b/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java index f4adb1ef..95fc54cc 100644 --- a/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java +++ b/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java @@ -132,26 +132,30 @@ public class MessageDispatcher implements WebServiceMessageReceiver, BeanNameAwa } public void receive(MessageContext messageContext) throws Exception { - if (logger.isDebugEnabled()) { - logger.debug("MessageDispatcher with name '" + beanName + "' received request [" + - messageContext.getRequest() + "]"); - } if (logger.isTraceEnabled()) { ByteArrayOutputStream os = new ByteArrayOutputStream(); messageContext.getRequest().writeTo(os); - logger.trace("Request contents: " + os.toString("UTF-8")); + logger.trace( + "MessageDispatcher with name '" + beanName + "' received request [" + os.toString("UTF-8") + "]"); + } + else if (logger.isDebugEnabled()) { + logger.debug("MessageDispatcher with name '" + beanName + "' received request [" + + messageContext.getRequest() + "]"); } dispatch(messageContext); if (messageContext.hasResponse()) { - if (logger.isDebugEnabled()) { + if (logger.isTraceEnabled()) { + ByteArrayOutputStream requestStream = new ByteArrayOutputStream(); + messageContext.getRequest().writeTo(requestStream); + ByteArrayOutputStream responseStream = new ByteArrayOutputStream(); + messageContext.getResponse().writeTo(responseStream); + logger.trace("MessageDispatcher with name '" + beanName + "' sends response [" + + responseStream.toString("UTF-8") + "] for request [" + requestStream.toString("UTF-8") + "]"); + } + else if (logger.isDebugEnabled()) { logger.debug("MessageDispatcher with name '" + beanName + "' sends response [" + messageContext.getResponse() + "] for request [" + messageContext.getRequest() + "]"); } - if (logger.isTraceEnabled()) { - ByteArrayOutputStream os = new ByteArrayOutputStream(); - messageContext.getResponse().writeTo(os); - logger.trace("Response contents: " + os.toString("UTF-8")); - } } else if (logger.isDebugEnabled()) { logger.debug("MessageDispatcher with name '" + beanName + "' sends no response for request [" +