从Java组件访问MuleMessage和流变量

我有一个接收有效负载(JsonData)的Java组件,如下所示:

public String myMethod(JsonData payload) throws IOException { // do things with payload. } 

这工作正常,但我还需要访问方法中的流变量。 我明白,为此,我需要运行myMessage.getInvocationProperty(“my-variable-name”); 但是,由于我只传递了有效负载,因此我无法访问MuleMessage。 如何更改方法以便我可以访问我的消息/属性?

我试过了:

 org.mule.RequestContext.getEvent().getMessage() 

但它已被弃用。

此外,我已经阅读了关于这个问题的各种答案,但从未找到完整的答案。

谢谢,

通过invoke消息处理器将流变量作为第二个参数传递给myMethod

因此,假设myMethod的新签名是:

 public String myMethod(JsonData payload, String myVariable) throws IOException { // do things with payload. } 

你会这样做:

  

使用message.getInvocationProperty方法。

设置变量:

  

从调用范围中检索变量:

 String lastname = message.getInvocationProperty("lastname");