Hello, in my integration prototype an existing web-service should be adapted to an other contract. Therefore, I have a cxf:consumer(dataFormat=PAYLOAD; the associated cxf:endpoint definition references a WSDL but no service class) and a cxf:producer (the associated cxf:endpoint references a service class that has been generated from a WSDL). In this scenario, I?m getting an exception, when the response is send back within the cxf:consumer (XMLStreamDataWriter.write expects DataSource, Node or Source) . After doing some debugging, binding.populateCxfResponseFromExchange extracts the data format from the current exchange (in my case cxf:producer with data format POJO) and not the current endpoint (in my case cxf:consumer with data format PAYLOAD).
What's the correct interaction between those components? The mix of data formats is needed, because 1.) the SOAP headers should be inspected 2.) the incoming SOAP message can contain invalid type representation (e.g. timestamp) that have to be corrected before => POJO can not be used in this case code from org.apache.camel.component.cxf.CxfConsumer @SuppressWarnings("unchecked") private void setResponseBack(Exchange cxfExchange, org.apache.camel.Exchange camelExchange) { CxfEndpoint endpoint = (CxfEndpoint)getEndpoint(); CxfBinding binding = endpoint.getCxfBinding(); checkFailure(camelExchange); // bind the Camel response into a CXF response if (camelExchange.getPattern().isOutCapable()) { binding.populateCxfResponseFromExchange(camelExchange, cxfExchange); } // check failure again as fault could be discovered by converter checkFailure(camelExchange); // copy the headers javax.xml.ws header back binding.copyJaxWsContext(cxfExchange, (Map<String, Object>)camelExchange.getProperty(CxfConstants.JAXWS_CONTEXT)); } I?m using camel-cxf 2.5.0 Thanks, Thomas Der Austausch von Nachrichten mit o.a. Absender via e-mail dient ausschließlich Informationszwecken. Rechtsgeschäftliche Erklärungen dürfen über dieses Medium nicht ausgetauscht werden. Correspondence with a.m. sender via e-mail is only for information purposes. This medium is not to be used for the exchange of legally-binding communications.