有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    据我所知,根本没有这种CXF_MESSAGE数据格式。有POJO(默认值)、PAYLOADMESSAGE。使用MESSAGE数据格式,您将无法处理任何SOAP数据-此模式适用于无SOAP处理

    为了处理SOAP头,需要指定PAYLOAD数据格式。然后就可以处理SOAP头了。检查here如何执行此操作注意:在这个链接中,路由是通过Java代码完成的。为了通过Spring实现这一点,您必须创建自己的Processor,然后从URI将消息转发到自定义处理器,修改头并将其发送回真正的端点

    另请参见: