0

WSO2 ESB アグリゲーター メディエーターと少し混乱しています。

WebServices を介して 3 つのメッセージを異なるシステムに送信する必要がありますが、3 つのシステムのメッセージ形式は異なるため、onComplete 式を検証する前に各応答を標準モデルに変換する必要があります。これを達成するにはどうすればよいですか?

早速の対応、ありがとうございました!

応答メッセージを変換するために XSLT 変換が必要であることはわかっていますが、問題はそれをどこに置くべきかわかりません。私が理解しているのは、onComplete セクションには応答メッセージからの xpath 式が必要ですが、3 つのメッセージには異なる xpath 値があるということです。

例えば:

応答 1:

<ns:getCustomerInfoResponse> <ns:Status> <ns1:Code>0</ns1:Code> <ns1:Desc>SUCCESS</ns1:Desc> </ns:Status> </ns:getCustomerInfoResponse>

応答 2:

<v1:findByIdResponse> <output> <StatusCode>0</StatusCode> <StatusDesc>OK</StatusDesc> </output> </v1:findByIdResponse>

私が必要とするのは、 onComplete 式を次のように検証する前に、2 つ (または 3 つ) の応答を一意の正規応答に変換することです。

<ns:response> <status> <code>0</code> <desc>SUCCESS</desc> </status> </ns:response>

ありがとう。


Ratha さん、返信ありがとうございます。

次のシナリオを検討してください。

銀行には、クレジット システム、コアバンキング システム、CRM システムの 3 つの異なるシステムがあります。

「すべての製品からすべての残高を取得する」などの操作を行う必要があるため、要求は顧客 ID であり、顧客 ID はすべての顧客製品を取得するために CRM に送信されます。製品 (クレジット カードまたは貯蓄口座) に応じて、顧客 ID をクレジット システムまたは CoreBanking に送信する必要があります。最後に、各システムが応答し、ESB は両方のバランスで応答する必要があります。

このユースケースで私を助けてくれることを願っています!

よろしく。

4

4 に答える 4

1

ここで集計メディエータを使用するのは適切ではないと思います。サービス エンドポイントからさまざまな応答を受け取っているためです。これは xpath を使用して関連付けることはできません。集約メディエーター。複製/反復メディエーターと一緒に使用できます。メディエーターの複製と反復は、同じ要求を複数のエンドポイントなどに送信するために使用されます。

私の質問; 同じリクエストを異なるエンドポイントに送信していて、どのエンドポイントが異なるタイプの応答を返していますか? もしそうなら、サービスをどのように定義したか、少し間違っているように見えます。

異なるリクエストを送信し、異なるレスポンスを取得し、バックエンド サービスから受け取ったレスポンスに基づいて集計 (または新しいレスポンスを作成) したい場合、ESB ドキュメントで見つけることができるサービス チェーン パターンに分類されます。 . これがあなたに明らかであることを願っています。

于 2013-05-20T17:20:34.470 に答える
0

XSLT メディエーターを使用して、メッセージを統一された形式にすることができます。XSLT メディエーターのサンプルについては、[1] を参照してください。

[1]。http://wso2.org/project/esb/java/3.0.1/docs/mediators/xslt.html

ありがとう、ダルシャナ。

于 2013-05-20T05:20:18.777 に答える
0

私の理解が正しければ、サービス チェイニング、変換、および反復/集約の組み合わせが必要です。

したがって、CRM システムに要求を送信することから始めます。その後、クレジット カードまたは普通預金口座に細分化されたさまざまな製品で応答します。

次に、2 つの反復メディエーターを使用して、応答を 2 つのエンドポイントの異なる要求に分割し、応答シーケンスで集計またはプロパティ メディエーターを使用して応答を収集できます。

Credit System と CoreBanking サービスの応答が得られたので、変換 (XSLT) を開始し、それらを応答 (残高) に集計することができます。

ここでは、サービス チェーンと XSLT 変換の例を示します。

よろしく。

于 2013-05-22T05:35:17.827 に答える