Class AbstractLoggingInterceptor

java.lang.Object
org.springframework.xml.transform.TransformerObjectSupport
org.springframework.ws.server.endpoint.AbstractLoggingInterceptor
All Implemented Interfaces:
EndpointInterceptor
Direct Known Subclasses:
PayloadLoggingInterceptor, SoapEnvelopeLoggingInterceptor

public abstract class AbstractLoggingInterceptor extends TransformerObjectSupport implements EndpointInterceptor
Abstract base class for EndpointInterceptor instances that log a part of a WebServiceMessage. By default, both request and response messages are logged, but this behaviour can be changed using the logRequest and logResponse properties.
Since:
1.0.0
Author:
Arjen Poutsma
  • Field Details

    • logger

      protected transient org.apache.commons.logging.Log logger
      The default Log instance used to write trace messages. This instance is mapped to the implementing Class.
  • Constructor Details

    • AbstractLoggingInterceptor

      public AbstractLoggingInterceptor()
  • Method Details

    • setLogRequest

      public final void setLogRequest(boolean logRequest)
      Indicates whether the request should be logged. Default is true.
    • setLogResponse

      public final void setLogResponse(boolean logResponse)
      Indicates whether the response should be logged. Default is true.
    • setLoggerName

      public void setLoggerName(String loggerName)
      Set the name of the logger to use. The name will be passed to the underlying logger implementation through Commons Logging, getting interpreted as log category according to the logger's configuration.

      This can be specified to not log into the category of a class but rather into a specific named category.

      See Also:
    • handleRequest

      public boolean handleRequest(MessageContext messageContext, Object endpoint) throws TransformerException
      Logs the request message payload. Logging only occurs if logRequest is set to true, which is the default.
      Specified by:
      handleRequest in interface EndpointInterceptor
      Parameters:
      messageContext - the message context
      endpoint - chosen endpoint to invoke
      Returns:
      true
      Throws:
      TransformerException - when the payload cannot be transformed to a string
      See Also:
    • handleResponse

      public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception
      Logs the response message payload. Logging only occurs if logResponse is set to true, which is the default.
      Specified by:
      handleResponse in interface EndpointInterceptor
      Parameters:
      messageContext - the message context
      endpoint - chosen endpoint to invoke
      Returns:
      true
      Throws:
      TransformerException - when the payload cannot be transformed to a string
      Exception - in case of errors
      See Also:
    • handleFault

      public boolean handleFault(MessageContext messageContext, Object endpoint) throws Exception
      Does nothing by default. Faults are not logged.
      Specified by:
      handleFault in interface EndpointInterceptor
      Parameters:
      messageContext - contains both request and response messages, the response should contains a Fault
      endpoint - chosen endpoint to invoke
      Returns:
      true to continue processing of the response interceptor chain; false to indicate blocking of the response handler chain.
      Throws:
      Exception
    • afterCompletion

      public void afterCompletion(MessageContext messageContext, Object endpoint, Exception ex)
      Does nothing by default
      Specified by:
      afterCompletion in interface EndpointInterceptor
      Parameters:
      messageContext - contains both request and response messages, the response should contains a Fault
      endpoint - chosen endpoint to invoke
      ex - exception thrown on handler execution, if any
    • isLogEnabled

      protected boolean isLogEnabled()
      Determine whether the logger field is enabled.

      Default is true when the "debug" level is enabled. Subclasses can override this to change the level under which logging occurs.

    • logMessageSource

      protected void logMessageSource(String logMessage, Source source) throws TransformerException
      Logs the given source to the logger, using the message as a prefix.

      By default, this message creates a string representation of the given source, and delegates to logMessage(String).

      Parameters:
      logMessage - the log message
      source - the source to be logged
      Throws:
      TransformerException - in case of errors
    • logMessage

      protected void logMessage(String message)
      Logs the given string message.

      By default, this method uses a "debug" level of logging. Subclasses can override this method to change the level of logging used by the logger.

      Parameters:
      message - the message
    • getSource

      protected abstract Source getSource(WebServiceMessage message)
      Abstract template method that returns the Source for the given WebServiceMessage.
      Parameters:
      message - the message
      Returns:
      the source of the message