【问题标题】:Mule Foreach's counter is null after Scatter GatherMule Foreach 的计数器在 Scatter Gather 后为空
【发布时间】:2015-11-20 09:34:39
【问题描述】:

我有一个 Mule 流程,我在其中配置了一个 Scatter Gather 范围,如下所示:

<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="{&quot;message&quot;: &quot;success&quot;}" 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>

Scatter Gather 后的记录器如下所示。

Payload is [Payload1, Payload2]

所以很明显上面的payload是一个列表。

foreach 中的两个记录器如下所示。

Payload null is : Payload1
Payload null is : Payload2

所以这意味着foreach内部记录器中的MEL表达式#[flowVars.counter]返回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] 可以正常工作

谁能解决这个问题?

【问题讨论】:

    标签: mule


    【解决方案1】:

    为什么我还不能完全确定,但是 scatter-gather 会返回一个 org.mule.DefaultMessageCollection,这似乎会弄乱计数器。但是,如果您将collection 显式设置为payload,则它可以工作。

    <foreach doc:name="forEach" collection="#[payload]">
        <logger message="Payload #[flowVars.counter] is : #[payload]"
            level="INFO" doc:name="logEachPayload" />
    </foreach>
    

    【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2021-11-26
    • 1970-01-01
    相关资源
    最近更新 更多