Environment: WebSphere Platform 6.1 [BASE 6.1.0.21 cf210844.13] [WEBSERVICES
6.1.0.21 cf210844.03]
Topic: Retrieving the SOAP Message.
The SOAPMessageContext can be retrieved in one of two ways:
Handler
public boolean handleMessage(SOAPMessageContext
soapMessageContext)
EndPoint
@Resource
private WebServiceContext webServiceContext;
// webServiceContext.getMessageContext();
If there is no inbound payload the SOAPMessage may be retrieved as follows
using either strategy:
SOAPMessage soapMessage = soapMessageContext.getMessage();
However, if there is an inbound payload the @Resource strategy yields the
following when retrieving the SOAP message:
Caused by: javax.xml.ws.WebServiceException: An internal error occurred. The
org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl block object
is already consumed. Processing cannot continue. Run with the debug option
to determine where the block was first consumed.
at
org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:178)
at
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:79)
at
org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:125)
at
org.apache.axis2.jaxws.message.impl.BlockImpl.outputTo(BlockImpl.java:376)
at
org.apache.axis2.jaxws.message.impl.BlockImpl.serialize(BlockImpl.java:309)
at
org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:570)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:789)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:773)
at
org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:247)
at
org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:773)
at
org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:345)
at
org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:389)
at
org.apache.axis2.jaxws.message.impl.MessageImpl.getAsSOAPMessage(MessageImpl.java:192)
at
org.apache.axis2.jaxws.handler.SoapMessageContext.getMessage(SoapMessageContext.java:111)
at
com.ford.it.wscore.context.WscBaseProviderOrchestrator.getSoapMessage(WscBaseProviderOrchestrator.java:564)
at
com.ford.it.wscore.context.WscBaseProviderOrchestrator.getSoapPart(WscBaseProviderOrchestrator.java:581)
at
com.ford.it.wscore.context.WscBaseProviderOrchestrator.parseXmlFromSoapPart(WscBaseProviderOrchestrator.java:748)
at
com.ford.it.wscore.context.WscBaseProviderOrchestrator.logRequest(WscBaseProviderOrchestrator.java:226)
... 37 more
Note: Only non-API Google hits on this exception are in reference to an
Axis2 unmarshaling bug resolved 4/2007.
Any ideas why we see different behavior depending on which strategy used to
retrieve the SOAP Message?
Thanks,
Marvin
--
View this message in context:
http://www.nabble.com/The-org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl-block-object-is-already-consumed.-tp23138529p23138529.html
Sent from the Axis - User mailing list archive at Nabble.com.