2013-11-21 145 views
2

我是新來的騾子,這就是我想要做的。 1)呼叫出站休息服務A 2)循環播放結果並呼叫休息服務B 3)彙總來自服務B的結果並返回有效載荷。 下面是我想出來的,但是這個流程返回的是服務A的結果。如何忽略A的結果並返回B的聚合結果?我在循環內部添加了記錄器,可以看到B的響應,但不知道如何將結果返回給用戶?我需要自定義聚合器嗎?Mule - 如何彙總來自foreach的結果並返回結果?

<flow name="test1Flow1" doc:name="test1Flow1"> 

    <http:inbound-endpoint exchange-pattern="request-response" doc:name="HTTP1" address="http://localhost:8082"/> 
     <copy-properties propertyName="*" doc:name="Property"/> 
     <http:outbound-endpoint doc:name="HTTP2" followRedirects="true" address="http://abcd/catalog/#[message.inboundProperties['http.relative.path']]?#[message.inboundProperties['http.query.string']]" contentType="text/xml"/> 

    <foreach doc:name="For Each" collection="#[xpath('//mc:assets/mc:asset')]"> 

    <http:outbound-endpoint doc:name="HTTP3" address="http://abcd#[xpath:@href]" contentType="text/xml" method="GET"/> 
    <collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/>   
    </foreach> 

</flow> 

感謝任何幫助!

回答

0

Mule中的foreach像循環一樣工作,並且一次起到分離器和聚合器的作用。

我相信您一定能夠實現你的使用情況有以下:

在HTTP
    1. 了HTTP與
    2. 分流
    3. 了HTTP乙
    4. 聚合

    看看here的例子分離器和聚合器。

    問候