我在 mule 中使用了一个 foreach 组件。我正在使用 Foreach 迭代一个集合对象。对于 ForEach 组件,我正在发送一个集合有效负载作为输入。Foreach 迭代集合有效负载。但问题是我无法在下一个组件中获取 Iterated foreach 有效负载。
这是我的代码片段
<choice doc:name="Choice">
<when expression="#[ognl:instance=='Lamp']">
<processor-chain>
<message-properties-transformer scope="invocation" doc:name="Message Properties">
<add-message-property key="loops" value="0"/>
</message-properties-transformer>
<component class="com.Lamp" doc:name="Java"/>
<foreach doc:name="Foreach">
<component class="com.Candle" doc:name="Java"/>
<logger message="DDD #[message:payload]" level="INFO" doc:name="Logger"/>
<set-variable variableName="foreachPayload" value="#[message:payload]" doc:name="Payload"/>
</foreach>
</processor-chain>
</when>
在这里,由于我无法直接获取 foreach 组件的有效负载,因此我尝试将该有效负载设置在名为“foreachPayload”的变量中。但是在访问下一个组件中的变量时,迭代集合对象的最后一个值并不是迭代集合对象的全部值。
这是访问会话变量的代码片段。
eventContext.getMessage().getInvocationProperty("foreachPayload")
请让知道这里的问题是什么以及解决这个问题的方法。
下面附上我的消息流截图