cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Kieselhorst (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CXF-7388) Problem with MTOM in Camel-CXF
Date Tue, 30 May 2017 08:23:04 GMT

    [ https://issues.apache.org/jira/browse/CXF-7388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16028821#comment-16028821
] 

Dennis Kieselhorst edited comment on CXF-7388 at 5/30/17 8:22 AM:
------------------------------------------------------------------

Well I also responded:
https://lists.apache.org/thread.html/9d27cc40cb5495ea20d75492b520b14ec128da45dad9b54175c8cefd@%3Cusers.cxf.apache.org%3E
{quote}
Is there a similar testcase in https://github.com/apache/camel/tree/master/components/camel-cxf/src/test/java/org/apache/camel/component/cxf
that we can use to reproduce it?

According to comments in the CXF code this part of code was optimized to improve performance,
so we need to discuss this before changing it. Can you please open an issue for it?
{quote}


was (Author: deki):
Well I also responded:
Is there a similar testcase in https://github.com/apache/camel/tree/master/components/camel-cxf/src/test/java/org/apache/camel/component/cxf
that we can use to reproduce it?

According to comments in the CXF code this part of code was optimized to improve performance,
so we need to discuss this before changing it. Can you please open an issue for it?

> Problem with MTOM in Camel-CXF
> ------------------------------
>
>                 Key: CXF-7388
>                 URL: https://issues.apache.org/jira/browse/CXF-7388
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 3.1.9
>            Reporter: Joerg Kessler
>             Fix For: 3.2.0
>
>
> Hi,
> I posted this on the CXF user list without getting a response (except from Aki who supports
this);
> We use CXF 3.1.9 together with Camel 2.17.4. We want to enable MTOM on the Camel-CXF
producer. To test it I created a simple route using Camel test infrastructure where the producer
uses a WSDL with base64 encoded payload parts. But in the log output of CXF I always get a
payload like this
> Http-Method: POST
> Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:2a84a041-d9ce-4caf-a8e1-b4247e1ad6d6";
start="<root.message@cxf.apache.org>"; start-info="text/xml"
> Headers: {Accept=[*/*], breadcrumbId=[ID-WDFN32392889A-65347-1494850621554-0-1], Cache-Control=[no-cache],
connection=[keep-alive], Content-Length=[487], content-type=[multipart/related; type="application/xop+xml";
boundary="uuid:2a84a041-d9ce-4caf-a8e1-b4247e1ad6d6"; start="<root.message@cxf.apache.org>";
start-info="text/xml"], Host=[localhost:8770], Pragma=[no-cache], SOAPAction=[""], User-Agent=[Apache-CXF/3.1.9]}
> Payload: --uuid:2a84a041-d9ce-4caf-a8e1-b4247e1ad6d6
> Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
> Content-Transfer-Encoding: binary
> Content-ID: <root.message@cxf.apache.org>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><typ:testXop
xmlns:typ="http://cxf.apache.org/mime/types"><typ:name>?</typ:name><typ:attachinfo>U1VDQ0VTUw==</typ:attachinfo></typ:testXop></soap:Body></soap:Envelope>
> --uuid:2a84a041-d9ce-4caf-a8e1-b4247e1ad6d6--
> This is not MTOM. The endpoint configuration is
>     <cxf:cxfEndpoint id="clientEndpoint" address="http://localhost:8770/cxf/mtom"
bus="ClientBus" wsdlURL="wsdl/mtom_xop.wsdl">
>         <cxf:properties>
>             <entry key="dataFormat" value="PAYLOAD" />
>             <entry key="defaultOperationName" value="testXop" />
>             <entry key="defaultOperationNamespace" value="http://cxf.apache.org/mime"/>
>             <entry key="mtom-enabled" value="true" />
>         </cxf:properties>
>     </cxf:cxfEndpoint>
> Here I even used a WSDL that is used in the CXF MTOM tests. Then I compared the execution
of the relevant interceptors in Camel-CXF and CXF and found one difference:
> In AbstractOutDatabindingInterceptor. writeToOutputStream() it is checked that the data
binding is implemented by the class org.apache.cxf.jaxb.JAXBDataBinding. That is correct for
CXF but Camel-CXF sets in CxfEndpoint the  binding to org.apache.camel.component.cxf.HybridSourceDataBinding
which is derived from JAXBDataBinding but of course is a different class. This seems to prevent
the completion of the MTOM conversion. I changed the code locally so that now all subclasses
are accepted and now the attachment processing gets really called. But now the next problem
apears; HybridSourceDataBinding.createWriter() raises an exception:
> java.lang.UnsupportedOperationException: The type java.io.OutputStream is not supported.
> 	at org.apache.camel.component.cxf.HybridSourceDataBinding.createWriter(HybridSourceDataBinding.java:87)
> I guess the method getSupportedWriterFormats of JAXBDataBinding/HybridSourceDataBinding
should prevent something like this but in this case it does not work.
> I am also unsure whether the problem is now really in CXF or in Camel-CXF. Therefore
please forward it to Camel if the problem is locarted there. 
> Best Regards,
> Jörg



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message