我有一个接收有效负载(JsonData)的Java组件,如下所示:
public String myMethod(JsonData payload) throws IOException {
// do things with payload.
}
这工作正常,但我还需要访问方法中的流变量。我明白,为此,我需要运行myMessage.getInvocationProperty(" my-variable-name"); 但是,由于我只传递了有效负载,因此我无法访问MuleMessage。如何更改方法以便我可以访问我的消息/属性?
我试过了:
org.mule.RequestContext.getEvent().getMessage()
但已被弃用。
另外,我已经在这个问题上阅读了各种答案,但从未找到完整答案。
谢谢,
答案 0 :(得分:2)
通过myMethod
消息处理器将流变量作为第二个参数传递给invoke
。
因此,假设myMethod
的新签名是:
public String myMethod(JsonData payload, String myVariable) throws IOException {
// do things with payload.
}
你会这样做:
<invoke object-ref="myComponent"
method="myMethod"
methodArguments="#[message.payload],#[flowVars['my-variable-name']]" />
答案 1 :(得分:0)
使用message.getInvocationProperty
方法。
设置变量:
<set-variable variableName="lastname" value="#[payload.lastname]" />
从调用范围中检索变量:
String lastname = message.getInvocationProperty("lastname");