Mule:如何将 Java/Spring bean 的方法调用结果分配给流变量

Mule: how to assign a Java/Spring bean's method call result to a flow variable

我是 Mule 新手。我知道我可以在 Mule 流配置中包含 "Java" 或 "Invoke" 组件。我的问题是:如何将 Java 方法调用返回的值分配给 Mule 流变量?前任。像

<spring-bean name="myBean" .... />

<invoke object-ref="myBean" method="addTwoNumbers" methodArguments="#[var1], #[var2]" methodArgumentTypes="java.lang.Float, java.lang.Float" name="someName" doc:name="Invoke"/>

<set-variable variableName="addResult" value="???????" />

我需要 "addResult" var 具有上一次调用结果的值,但是如何?

谢谢!

spring bean 的结果将是有效负载,因此您可以这样设置它:

<set-variable variableName="addResult" value="#[payload]" />

但是,如果您不想覆盖现有的负载,您可以使用 enricher:

<enricher target="#[flowVars.addResult]">
   <invoke object-ref="myBean" method="addTwoNumbers" methodArguments="#[var1], #[var2]" methodArgumentTypes="java.lang.Float, java.lang.Float" name="someName" doc:name="Invoke"/>
</enricher>