我遇到一个问题,其中一个mule组件将有效负载对象转换为其他值。例如:假设我的有效负载包含学生对象。 学生姓名的初始值= a;
我的第一个mule组件将学生姓名更改为x;
Student s=new Student();
s.setName("x");
我的第二个mule组件从有效负载接收名称X
。但我希望原始值为'a'
。
我尝试检查骡子的原始有效载荷,但该值也发生了变化..
<flow .....
<component> </component> // 1st component
<component></component> //2nd component
</flow>
我想在组件中使用相同的有效负载(原始)(名称为a的学生对象)。我可以这样做吗? 我检查了原始有效载荷并且已经转换了..
由于
答案 0 :(得分:3)
您可以使用<all>
将相同的有效负载发送到不同的组件,例如
<flow .....
<all>
<component> </component> // 1st component
<component></component> //2nd component
</all>
</flow>
或者,处理相同事物的另一种方法是将原始有效负载存储在变量中,然后将有效负载替换为前一个,如:
<set-variable variableName="originalPayload" value="#[message.payload]" />
然后,
<set-payload value="#[flowVars.originalPayload]"/>
答案 1 :(得分:2)
Mule还使用scatter gather
组件,它将有效负载并行发送到多个端点。该组件已从Mule 3.5.0中引入..
例如:
<scatter-gather doc:name="Scatter-Gather" timeout="6000">
<flow-ref name="flightBroker1" />
<flow-ref name="flightBroker2" />
<flow-ref name="flightBroker3" />
</scatter-gather>
以下是参考: - https://developer.mulesoft.com/docs/display/current/Scatter-Gather