0

I'm using JAX-RPC and wanted to know if there is a way to make JAX-RPC print the raw SOAP Request/Response for debug purposes.

I saw that JAX-RPC uses log4j but did not see which logger I should turn on with DEBUG to view the message before it is sent.

RonK
  • 9,472
  • 8
  • 51
  • 87

2 Answers2

0

If you are using Apache Axis, here is the log4J configuration you can use:

<appender name="wsAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="${catalina.base}/logs/MY_APP-ws.log" />
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="20MB" />
    <param name="MaxBackupIndex" value="10" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %m%n" />
    </layout>
      <filter class="org.apache.log4j.varia.StringMatchFilter">
              <param name="StringToMatch" value="MY_SPECIFIC_WSProcessRequest" />
              <param name="AcceptOnMatch" value="true" />
      </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>

<logger name="org.apache.axis.transport.http.HTTPSender" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="wsAppender"/>
</logger>

Change MY_SPECIFIC_WSProcessRequestfor the specific value matching the XML request you want to log.

Aldian
  • 2,592
  • 2
  • 27
  • 39
0

I'd suggest you implement an Handler which will have an handleRequest and handleResponse method (doc) that you can override to manipulate your request/response (documentation on how to use handlers).

talnicolas
  • 13,885
  • 7
  • 36
  • 56