我是骡子的新手,这就是我想做的事情。 1)呼叫出站休息服务A. 2)循环结果并呼叫休息服务B. 3)来自服务B的聚合结果并返回有效载荷。 这是我提出的,但是这个流程返回服务A的结果。如何忽略A的结果并从B返回聚合结果?我在for循环中添加了logger,可以看到B的响应,但不知道如何将结果返回给用户?我需要自定义聚合器吗?
<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 :(得分:0)
Mule中的foreach就像一个循环,就像一个分离器和聚合器一样。
我相信您将能够通过以下方式实现您的用例:
查看here有关拆分器和聚合器的示例。
此致
答案 1 :(得分:0)
我试图做一些非常相似的事情,最后我使用了一个集合分割器,集合 - 聚合器组合。在此查看详细信息:In Mule how do you repeatedly call a webservice and return an aggregate of the result?