0
後,我有一個騾子流,其中我配置分散聚集範圍如下圖所示:騾子的foreach的計數器是空分散收集
<flow name="simpleScatterGather">
<http:listener config-ref="HTTP_Listener_Configuration" path="/scatter-gather-test" doc:name="HTTP" />
<scatter-gather doc:name="Scatter-Gather">
<flow-ref name="subFlow1" doc:name="callSubFlow1"/>
<flow-ref name="subFlow2" doc:name="callSubFlow2"/>
</scatter-gather>
<logger message="Payload is #[payload]" level="INFO" doc:name="logPayload"/>
<foreach doc:name="forEach">
<logger message="Payload #[flowVars.counter] is : #[payload]" level="INFO" doc:name="logEachPayload"/>
</foreach>
<set-payload value="{"message": "success"}" mimeType="application/json" doc:name="setResponse"/>
</flow>
<sub-flow name="subFlow1">
<set-payload value="Payload1" doc:name="setPayload" />
</sub-flow>
<sub-flow name="subFlow2">
<set-payload value="Payload2" doc:name="setPayload" />
</sub-flow>
分散後的記錄器收集日誌像下面。
Payload is [Payload1, Payload2]
所以很明顯,上面的有效載荷是一個列表。
兩個記錄器在foreach日誌裏面,如下所示。
Payload null is : Payload1
Payload null is : Payload2
所以它意味着MEL表達式#[flowVars.counter]
在foreach中的記錄器返回null。
當我改變了的foreach範圍明確地包括collection
屬性象下面這樣:
<foreach doc:name="forEach" collection="#[payload]">
<logger message="Payload #[flowVars.counter] is : #[payload]" level="INFO" doc:name="logEachPayload"/>
</foreach>
的foreach日誌內的兩個記錄器等的下方。
Payload 1 is : Payload1
Payload 2 is : Payload2
現在MEL表達#[flowVars.counter]
按預期工作
任何人都可以請解決這個問題?
是的,它看起來像一個bug。我在(https://www.mulesoft.org/jira/browse/MULE-9136)上創建了一個bug。 –