I created a class that intercepts the Request-Response cycle of SOAP message exchange and I wanted to log the exchange of messages.
What’s the best way so that I could log the SOAP message in my log file?
I dont want it to be pretty printed in my log file but I just want to access
and view the request and response SOAP envelope.
I tried with this code:
public class LogHandler{
private static final Logger _LOG;
@Override
protected void handleResponse(SOAPMessage message)
logSOAPMessage(message);
}
@Override
protected void handleRequest(SOAPMessage message)
logSOAPMessage(message);
}
private void logSOAPMessage(SOAPMessage message){
_LOG.info(":: Logging SOAP Message :: " + message.toString());
}
}
But doesnt get the required message.
:: Logging SOAP Message :: oracle.j2ee.ws.saaj.soap.soap11.Message11@715346
Any hints?
What you are seeing is the toString of the SOAPMessage. You might have to lookup the javadocs to see if you can get the SOAPEnvelope from Oracle’s SOAPMessage and that should contain the incoming/outgoing SOAP message.
Edit: Please check this for getSoapHeader() and getSoapBody() to deconstruct the soap message. You might have to figure out the same for Oracle’s wrapper of SOAPMessage.