[
https://issues.apache.org/jira/browse/AXIS2-2166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rich Scheuerle resolved AXIS2-2166.
-----------------------------------
Resolution: Fixed
The JAX-WS message is marked as "post pivot" after the message is dispatched to
the web service provider/impl.
Subsequent persistance of the message will:
1) write out the elements that are not consumed by the dispatcher.
2) write out empty elements for the elements consumed by the dispatcher.
3) log a debug message for each of the empty elements.
It is assumed that the outbound handler processing will never need the
"consumed elements". The consumed
elements are generally the elements located in the body of the message.
If the outbound handler does need such information, I also provided a
SAVE_REQUEST_MESSAGE property.
If set, the message will be saved prior to dispatcher processing and restored
after dispatcher processing.
Use of this flag is not reccommended as it will cause the expansion of the OM
tree prior to JAX-WS Dispatcher processing.
Committed revision 507347.
> JAX-WS Request Message Persistance Failure
> ------------------------------------------
>
> Key: AXIS2-2166
> URL: https://issues.apache.org/jira/browse/AXIS2-2166
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: jaxws
> Reporter: Rich Scheuerle
> Assigned To: Rich Scheuerle
> Attachments: patch.txt
>
>
> Here is the scenario:
> 1) JAXWSReceiver receives request message.
> 2) During invoke processing, portions of the request message are
> converted into business objects. This is intentionally a destructive
> transformation for performance reasons (i.e. we don't want to cache the om
> tree while converting to a JAXB object).
> 3) Subsequent outbound RM processing persists the response MessageContext.
> 4) Pesisting the MessageContext also persists the parent
> OperationContext, which in turn, persists the request MessageContext.
> 5) Persisting the request MessageContext causes an exception due to the
> destructive transformation in (2).
> I am working on a solution to fix this problem in a manner that does not
> dramatically hinder performance.
> Here is an example exception:
> [12/02/07 10:38:38:062 GMT] 00000032 ExceptionFact 1
> org.apache.commons.logging.impl.Jdk14Logger debug Create Exception:
> javax.xml.ws.WebServiceException: An
> internal error occurred. The block for
> org.apache.axis2.jaxws.message.databinding.impl.SourceBlockImpl 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:177)
> at
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:79)
> at
> org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:124)
> at
> org.apache.axis2.jaxws.message.impl.BlockImpl.getXMLStreamReader(BlockImpl.java:189)
> at
> org.apache.axis2.jaxws.message.impl.BlockImpl.getReader(BlockImpl.java:215)
> at
> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getDirectReader(OMSourcedElementImpl.java:121)
> at
> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.forceExpand(OMSourcedElementImpl.java:144)
> at
> org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:531)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:807)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:792)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:807)
> at
> org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:180)
> at
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:792)
> at
> org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:400)
> at
> org.apache.axis2.context.MessageContext.writeExternal(MessageContext.java:2148)
> at
> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1397)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1375)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
> at
> org.apache.axis2.util.ObjectStateUtils.writeHashMap(ObjectStateUtils.java:976)
> at
> org.apache.axis2.context.OperationContext.writeExternal(OperationContext.java:514)
> at
> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1397)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1375)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
> at
> org.apache.axis2.util.ObjectStateUtils.writeObject(ObjectStateUtils.java:373)
> at
> org.apache.axis2.context.MessageContext.writeExternal(MessageContext.java:2655)
> at
> java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1397)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1375)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:324)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]