1

我正在使用 Camel 代理 web 服务(我需要先修改soap 标头)。我正在使用 CXF_MESSAGE 数据格式,因为它可以让我轻松更改肥皂标题。使用soapui 发送soap 消息效果很好,我可以看到它到达了真正的web 服务,但是,响应总是一个空的soap 信封?当我切换到 MESSAGE 数据格式时,响应是正确的(但是我无法更改 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>
4

1 回答 1

2

据我所知,根本没有这样CXF_MESSAGE的数据格式。有POJO(这是默认设置)PAYLOADMESSAGE. 使用该MESSAGE数据格式,您将无法处理任何内容SOAP- 此模式适用于不SOAP处理。

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

也可以看看:

于 2013-02-08T10:11:23.413 回答