If you require access to the SOAP message extending the Curam receiver class can allow you to do this as shown in the following example:
package webservice; import org.apache.axis2.AxisFault; import org.apache.axis2.context.MessageContext; import org.apache.log4j.Logger; /** * Sample SOAP message access. */ public class CustomReceiverInOutAccessSOAPMsg extends curam.util.connectors.axis2.CuramMessageReceiver { /** Class logger. */ private final Logger log = Logger.getLogger(CustomReceiverInOutAccessSOAPMsg.class); /** * Access the SOAP message and invoke * Curam receiver invokeBusinessLogic. * * @param messageContextIn Input MessageContext. * @param messageContextOut Output MessageContext. * * @throws AxisFault based on called method. */ @Override public void invokeBusinessLogic(final MessageContext messageContextIn, final MessageContext messageContextOut) throws AxisFault { if (messageContextIn != null) { final org.apache.axiom.soap.SOAPEnvelope inEnv = messageContextIn.getEnvelope(); if (inEnv != null) { // Insert custom SOAP processing here. log.debug("Sample access of SOAP message: " + inEnv.toString()); } } super.invokeBusinessLogic(messageContextIn, messageContextOut); } }
Note, the invocation of super.invokeBusinessLogic() must be made.
See Building Custom Receiver Code on how to specify and build this custom class.