【问题标题】:Set value to payload using expression transformer使用表达式转换器将值设置为有效负载
【发布时间】:2015-06-12 05:46:55
【问题描述】:

我想在作为 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:带有表达式“payload.setEventId(flowVars['name'])”的表达式评估器“null”返回 null,但需要一个值。

【问题讨论】:

    标签: mule mule-studio mule-component


    【解决方案1】:

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

    改用expression-component

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

    【讨论】:

    • 按照我在下面做的表达式组件中的类似行,但得到一个 boolean(true) payload = flowVars.userList.add(payload) 这里 userList 是一个 ArrayList
    • 是的,确实 ArrayList.add 返回一个布尔值:docs.oracle.com/javase/7/docs/api/java/util/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多