使用表达式转换器将值设置为有效负载

Set value to payload using expression transformer

我想在负载上调用一个函数,它是一个 Java pojo 来设置一个值。

<set-variable variableName="name" value="xyz" doc:name="Variable"/>
<foreach doc:name="For Each">
<expression-transformer expression="#[payload.setEventId(flowVars['name'])]" doc:name="Expression"/>
<logger message="#[payload.getEventId()]" level="INFO" doc:name="Logger"/>
</foreach>

但这给了我错误。 根异常堆栈跟踪: org.mule.api.transformer.TransformerException:表达式 "null" 的表达式计算器 "payload.setEventId(flowVars['name'])" 返回空值,但需要一个值。

expression-transformer 将当前负载替换为表达式返回的值。我猜 setEventId 是无效的,因此表达式 returns null,因此是例外。

改用expression-component

<expression-component>payload.setEventId(flowVars['name'])</expression-component>