1

Camel を使用して Web サービスをプロキシしています (最初に SOAP ヘッダーを変更する必要があります)。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(これはデフォルトです)、PAYLOADおよびがありますMESSAGE。データ形式を使用すると、MESSAGE処理できなくなります。SOAPこのモードは、処理なしに適用されSOAPます。

ヘッダーを処理するには、データ形式SOAPを指定する必要があります。そうすれば、ヘッダーPAYLOADを処理できるようになります。これを行う方法をここでSOAP確認してください。注:このリンクでは、ルートはJavaコードを介して実行されます。Springを介してこれを行うには、独自のプロセッサを作成してから、URIからメッセージをカスタムプロセッサに転送し、ヘッダーを変更して、実際のエンドポイントに送り返す必要があります。

参照:

于 2013-02-08T10:11:23.413 に答える