1
我正在使用骆驼来代理web服务(我需要先修改肥皂标题)。我使用CXF_MESSAGE数据格式,因为这使我可以轻松更改肥皂标题。 使用soapui发送肥皂信息的工作正常,我可以看到它到达真正的webservice,但是,响应始终是一个空的肥皂信封?当我切换到MESSAGE数据格式时,响应是正确的(但是我不能更改SOAP标头)。骆驼代理的web服务返回一个空的soap信封
我在做什么错?为什么数据格式会改变输入/输出行为?
<cxf:cxfEndpoint id="broker">
...
</cxf:cxfEndpoint>
<camelContext id="camelContext" xmlns="http://camel.apache.org/schema/spring">
<endpoint id="realWS" uri="http://localhost:8080/service?throwExceptionOnFailure=true" />
<route>
<from uri="cxf:bean:broker?dataFormat=CXF_MESSAGE" />
<to ref="realWS" />
</route>
</camelContext>
CXF_MESSAGE在骆驼2.8.2添加。 (在你的第二个链接中提到)切换到PAYLOAD给了我一个org.apache.camel.component.cxf.CxfPayload,当我提出我的请求时,不能转换为javax.xml.soap.SOAPMessage。还是'to'端点也需要成为CXF bean? –
是的。它也需要是一个骆驼cxf bean。首先,您必须创建一个类并实现处理器界面。然后在你的spring中创建一个它的bean,并将它从(从)端点'转发到'你的骆驼bean:' />'然后'转换为'real ws。 –
哎呀忘了删除我的处理器,扔了classcast。当我删除处理器并使用PAYLOAD时,我始终得到一个HTTP操作失败,调用http:// localhost:8088/mockBinding和statusCode:500作为响应。 (我使用SoapMock来测试我的设置,因此'mockBinding' –