如何将相同的有效负载发送到mule中的多个组件?

时间:2013-05-14 14:38:42

标签: java spring mule mule-studio

我遇到一个问题,其中一个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的学生对象)。我可以这样做吗? 我检查了原始有效载荷并且已经转换了..

由于

2 个答案:

答案 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