0

wsa:To元の値が中間 ESB の URL に変更されているため、別の ESB を介して WSO2ESB からバックエンド Web サービスに SOAP メッセージを転送することはできないようです。次の構成は、この動作を示しています。

<header name="To" value="http://ws.backend.com/service"/>
<property name="PRESERVE_WS_ADDRESSING" value="true"/>
<send>
    <endpoint name="IntermediateESB">
        <address uri="http://esb.intermediate.com/proxy">
            <enableAddressing/>
        </address>
    </endpoint>
</send>

SOAP ヘッダーには、次のものが含まれるようになりましたwsa:To

<wsa:To>http://esb.intermediate.com/proxy</wsa:To>

元の値address uriを上書きしているようです。wsa:To

のバックエンド Web サービスの URL が必要なため、これは中間 ESB で失敗しますwsa:To。中間 ESB が正しく機能するには、SOAP ヘッダーに次のものが含まれている必要があります。

<wsa:To>http://ws.backend.com/service</wsa:To>

これを修正するにはどのような構成が可能ですか?

4

2 に答える 2

0

wsa:ReplyTo ヘッダー タグでバックエンド アドレスを指定する必要があります。したがって、中間体はバックエンド サービスへの応答を続行します。

<header name="ReplyTo" value="http://ws.backend.com/service"/>

詳細: http://www.w3.org/Submission/ws-addressing/

于 2013-12-09T17:54:46.673 に答える
0

<enableAddressing/>解決策は、 !を使用せずに、WS-Addressing ヘッダーを自分で明示的に作成する必要があることです。

例:

<header xmlns:wsa="http://www.w3.org/2005/08/addressing" name="wsa:To" value="http://ws.backend.com/service"/>
<header xmlns:wsa="http://www.w3.org/2005/08/addressing" name="wsa:MessageID" expression="get-property('MessageID')"/>
<header xmlns:wsa="http://www.w3.org/2005/08/addressing" name="wsa:Action" value="http://ws.backend.com/operation"/>
<header name="To" value="http://esb.intermediate.com/proxy"/>
<header name="Action" value="http://ws.backend.com/operation"/>
<property name="PRESERVE_WS_ADDRESSING" value="true" scope="default" type="STRING"/>
<send>
    <endpoint name="IntermediateESB">
        <address uri="http://esb.intermediate.com/proxy"/>
    </endpoint>
</send>

同じ値で 'Action' を 2 回設定する必要があることに注意してください。また、別の値で「To」を使用し、上記の「アドレス」エンドポイントの代わりに「デフォルト」エンドポイントを使用できることに注意してください。

SOAP メッセージは「http://esb.intermediate.com/proxy」に投稿され、WS-Addressing ヘッダーは次のとおりです。

<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://ws.backend.com/service</wsa:To>
<wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">urn:uuid:52aad1f4-9295-43f6-90c0-304e87922c27</wsa:MessageID>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://ws.backend.com/operation</wsa:Action>

「IntermediateESB」は、この SOAP メッセージを「http://ws.backend.com/service」に転送できるようになりました。

于 2013-12-11T10:23:52.193 に答える