1

我有一个问题,一个骡子组件将有效负载对象转换为其他值。例如:假设我的有效载荷包含学生对象。Student name的初始值=a;

我的第一个 mule 组件将学生姓名更改为 x;

Student s=new Student();
s.setName("x");

我的第二个 mule 组件X从有效负载中接收名称。但我希望原始价值为'a'. 我尝试检查 mule 的原始有效负载,但该值也发生了变化..

<flow .....
   <component> </component> // 1st component
    <component></component> //2nd component
</flow>

我想要两个组件中的相同有效负载(原始)(名称为 a 的学生对象)..我该怎么做?我检查了原始有效载荷,并且已经转换了..

谢谢

4

2 回答 2

4

您可以使用<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]"/>
于 2013-05-14T14:52:00.170 回答
3

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

于 2015-07-18T12:06:47.780 回答