cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joerg Kessler (JIRA)" <>
Subject [jira] [Created] (CXF-7388) Problem with MTOM in Camel-CXF
Date Tue, 30 May 2017 04:49:04 GMT
Joerg Kessler created CXF-7388:

             Summary: Problem with MTOM in Camel-CXF
                 Key: CXF-7388
             Project: CXF
          Issue Type: Bug
            Reporter: Joerg Kessler

I posted this on the CXF user list without getting a response (except from Aki who supports
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="<>"; 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="<>";
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: <>

<soap:Envelope xmlns:soap=""><soap:Body><typ:testXop

This is not MTOM. The endpoint configuration is
    <cxf:cxfEndpoint id="clientEndpoint" address="http://localhost:8770/cxf/mtom" bus="ClientBus"
            <entry key="dataFormat" value="PAYLOAD" />
            <entry key="defaultOperationName" value="testXop" />
            <entry key="defaultOperationNamespace" value=""/>
            <entry key="mtom-enabled" value="true" />
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 is not supported.
	at org.apache.camel.component.cxf.HybridSourceDataBinding.createWriter(
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,


This message was sent by Atlassian JIRA

View raw message