2016-07-07 34 views
0

我有一個駱駝的服務,其中:駱駝模式:拯救交換體前WS來電豐富

  1. 暴露肥皂WS
  2. 調用REST服務來獲取信息
  3. 在結果的功能步驟#2,對步驟#1發送的數據執行一個動作或其他動作

我的問題是如何將數據保存到由客戶端在步驟#1發送的交換主體中,以便我得到它在步驟#3?

回答

0

一個選項是您可以使用MQ服務將數據臨時保存到客戶端在步驟#1發送的交換主體中。稍後在需要時使用它。

+0

Thks但它應該是複雜的,我的需要,因爲我將不得不維護這些隊列,並做消息之間的相互作用。此時,我將身體保存在交易所的財產中,但我不知道在這種情況下是否是正確的做法。 –

+0

如果您將屬性保存爲「abcServiceResponse」屬性,然後在步驟3中進行訪問,並且如果要並行執行兩個步驟,則創建AggregationStrategy並使用它,您將有權在步驟3中訪問這兩個響應。 –

0

您可以使用Content Enricher模式和自定義AggregationStrategy來實現它。根據您喜歡或需要的方式,AggregationStrategy可以將其中一條消息保存爲合併的Exchange的屬性。如果不想創建AggregationStrategy代碼,只需重新使用現有的GroupedMessageAggregationStrategy將兩個消息主體組合到List中。無論哪種方式,結果你都可以訪問原始消息和REST響應。