2013-05-20 31 views
0

我對WSO2 ESB聚合器介體有點困惑。WSO2 ESB來自不同響應的聚合

我需要通過WebServices向不同的系統發送三條消息,但這三個系統有不同的消息格式,所以我需要在驗證onComplete表達式之前將每個響應轉換爲規範模型,我該如何實現?

感謝您的快速響應!

我知道XSLT轉換是我需要轉換響應消息,但問題是我不知道該把它放在哪裏。我的理解是onComplete部分需要響應消息中的xpath表達式,但是這三個消息具有不同的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表達式之前:

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

謝謝。


感謝Ratha的回覆。

考慮以下情形:

在銀行有三種不同的系統:信用體系,CoreBanking系統和CRM系統。

我需要做一些事情,比如「從所有產品中獲取所有餘額」,因此,請求是客戶ID,然後將客戶ID發送到CRM以獲取所有客戶產品。根據產品(信用卡或儲蓄賬戶),它需要將客戶ID發送到信用系統或CoreBanking。最後,每個系統都會做出響應,ESB需要用這兩種餘額進行響應。

希望你能幫助我這個用例!

問候。

回答

0

This blog也與樣本說明您的情況...

+0

謝謝Reka,請看看擴展問題,以更好地理解我的需求。 Regards – user2400243

1

我不認爲這是正確的在這裏使用聚合調解角色,因爲你是從服務端點,不能使用相關聯接收不同反應XPath的。 聚合中介,可以與克隆/迭代中介一起使用。克隆和迭代介體用於將相同的請求發送到多個端點/類似的場景。

我的問題; 您是否向不同的端點發送了相同的請求,哪些響應了不同類型的響應?如果是這樣,它看起來有點不對,你如何定義你的服務。

如果您發送不同的請求並獲得不同的響應,並且希望根據您從後端服務收到的響應進行聚合(或創建新的響應),它將落入服務鏈模式,您可以找到在ESB文檔中。 希望你明白這一點。

+0

感謝Ratha的迴應。 – user2400243

+0

從你身邊的任何幫助? – user2400243

0

如果我正確地理解你,你想要一個服務鏈,轉換和迭代/聚合的組合。

因此,您首先將請求發送到CRM系統,然後它將使用不同的產品進行響應,細分爲信用卡或儲蓄帳戶。

然後,您可以使用兩個迭代中介將響應拆分爲兩個端點的不同請求,並通過在響應序列中使用聚合或屬性中介來收集響應。

既然您已經收到了信用系統和CoreBanking服務的回覆,那麼您可以開始轉換(XSLT)並將它們聚合到您的回覆(餘額)中。

Here你可以找到一個服務鏈和一點XSLT轉換的例子。

問候。