JavaCamel代理web服务返回一个空soap信封
我正在使用Camel代理Web服务(我需要先修改soap头)。我正在使用CXF_消息数据格式,因为它允许我轻松地更改soap头。 使用soapui发送soap消息效果很好,我可以看到它到达真正的Web服务,但是,响应总是一个空的soap信封?当我切换到消息dataformat时,响应是正确的(但是我不能更改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>
# 1 楼答案
据我所知,根本没有这种
CXF_MESSAGE
数据格式。有POJO
(默认值)、PAYLOAD
和MESSAGE
。使用MESSAGE
数据格式,您将无法处理任何SOAP
数据-此模式适用于无SOAP
处理为了处理
SOAP
头,需要指定PAYLOAD
数据格式。然后就可以处理SOAP
头了。检查here如何执行此操作注意:在这个链接中,路由是通过Java代码完成的。为了通过Spring实现这一点,您必须创建自己的Processor,然后从URI将消息转发到自定义处理器,修改头并将其发送回真正的端点另请参见: