[
https://issues.apache.org/jira/browse/CXF-1261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12549020
]
Thomas Diesler commented on CXF-1261:
-------------------------------------
Daniel sais:
The main reason is that CXF does not make any attempt to "inline" the XOP
attachments into the SAAJ model when reading a SOAP message. I don't
see anything in the specs that requires it to do so and doing so would
be a performance and memory usage nightmare. They ARE available in the
soap message as attachments.
When WRITING a soap message, if we're not streaming (aka: SAAJ handlers
are registered), we actually turn off the XOP processing so the data
gets in-lined. Nothing goes on the wire in XOP form then though. It's
always in inline form. That's why the other tests pass. They have
SAAJ handlers on the writing side. (FYI: the RI also does this.
If SAAJ handlers are there, the on the wire is inlined.) Originally,
we didn't even turn it off on the writing side, but I definitely can
see the case where having it in lined is important for the WS security
cases. However, I'm actually leaning toward setting it up so that the
security stuff turns it off and the default is to leave it on. That
would cause several more of your XOP tests to fail.
For the most part, I really hate the idea of base64 encoding a bunch of
data when we don't need to.
> Handler does not see XOP message properly
> -----------------------------------------
>
> Key: CXF-1261
> URL: https://issues.apache.org/jira/browse/CXF-1261
> Project: CXF
> Issue Type: Sub-task
> Affects Versions: 2.0.3
> Reporter: Thomas Diesler
>
> [EMAIL PROTECTED] trunk]$ ant
> -Dtest=org.jboss.test.ws.jaxws.samples.xop.doclit.XOPHandlerTestCase one-test
> [junit] Tests run: 7, Failures: 0, Errors: 7, Time elapsed: 9.393 sec
> [junit] Test
> org.jboss.test.ws.jaxws.samples.xop.doclit.XOPHandlerTestCase FAILED
> [junit] java.lang.IllegalStateException: XOP request not properly inlined
> [junit] at
> org.jboss.test.ws.jaxws.samples.xop.doclit.MTOMProtocolHandler.verifyXOPPackage(MTOMProtocolHandler.java:66)
> [junit] at
> org.jboss.test.ws.jaxws.samples.xop.doclit.MTOMProtocolHandler.handleInbound(MTOMProtocolHandler.java:53)
> [junit] at
> org.jboss.wsf.test.GenericHandler.handleMessage(GenericHandler.java:53)
> [junit] at
> org.apache.cxf.jaxws.handler.HandlerChainInvoker.invokeHandleMessage(HandlerChainInvoker.java:334)
> [junit] at
> org.apache.cxf.jaxws.handler.HandlerChainInvoker.invokeHandlerChain(HandlerChainInvoker.java:259)
> [junit] at
> org.apache.cxf.jaxws.handler.HandlerChainInvoker.invokeProtocolHandlers(HandlerChainInvoker.java:135)
> [junit] at
> org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessageInternal(SOAPHandlerInterceptor.java:129)
> [junit] at
> org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:109)
> [junit] at
> org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:59)
> [junit] at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> [junit] at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
> [junit] at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
> [junit] at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
> [junit] at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> [junit] at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> [junit] at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> [junit] at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> [junit] at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> [junit] at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> [junit] at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> [junit] at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> [junit] at $Proxy22.echoDataHandler(Unknown Source)
> [junit] at
> org.jboss.test.ws.jaxws.samples.xop.doclit.XOPBase.testAttachmentpartSwap(XOPBase.java:141)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.