【问题标题】:Accessing variables in transformer访问变压器中的变量
【发布时间】:2016-10-03 08:39:04
【问题描述】:

我正在运行 Mule CE,在我的一个流程中,我正在访问一个包含复杂对象的静态 XML 文件。 我使用 bean 读取了这个并将其保存在变量中。

<set-variable variableName="Settings" value="#[app.registry['LoadSetting']]" doc:name="Variable"/>

到目前为止一切顺利。 然后,在我的 Transformer 中,我需要读取这些值,使用正确的键找到对象并在我的有效负载中填写一些值。 那么,我如何在我的 Transformer 类中访问这个变量,比如

message.getInvocationProperty("test");

据我了解,“消息”本身不可用.. 是吗?

我确实在问题here 中找到了建议,但我并没有真正理解那个答案(毕竟是星期五..)

问候

【问题讨论】:

    标签: mule anypoint-studio


    【解决方案1】:

    你能分享一下你的 Transformation 课程吗?

    基本上,如果您的 Transformation 类扩展 org.mule.transformer.AbstractMessageTransformer,您可以访问“消息”。您可以从Mule User GuideSlideshare 中找到一些简单的示例。

    作为另一种选择,您可以使用@Expr annotation。例如,将此表达式 @Expr("flowVars['Settings']") String myFlowVarSettings 作为参数传递给您的 Transformation 类。然后用它来完成payload。

    【讨论】:

    • 感谢您的回答,是的,我正在覆盖“doTransform”。我会看看我能不能得到那个消息。从来没有读过@Expr 替代方案,看起来不错
    • 真傻,我确实扩展了 AbstractTransformer,而不是 AbstractMessageTransformer。巨大差距。但是,它不喜欢任何“@Expr”注释,但我可以通过 .getInvocationProperty() 获得它 - 非常感谢!
    猜你喜欢
    • 2021-03-18
    • 2018-09-10
    • 2016-08-28
    • 1970-01-01
    • 2021-12-21
    • 2020-04-15
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多