Java 如何使用MEL作为调用的methodArguments创建静态字符串数组

Java 如何使用MEL作为调用的methodArguments创建静态字符串数组,java,mule,Java,Mule,我尝试使用接受字符串和字符串数组的组件调用一个方法 flow.xml: <invoke object-ref="ResponseHandler" method="nullPayload" methodArguments="#[message, #['getProducts', 'getProduct']]" /> 你知道我该如何解决这个问题吗 谢谢我看到两个问题。首先,应关闭methodArguments中的第一个表达式,数组的MEL语法为{},表达式为: <invoke o

我尝试使用接受字符串和字符串数组的组件调用一个方法

flow.xml:

<invoke object-ref="ResponseHandler" method="nullPayload" methodArguments="#[message, #['getProducts', 'getProduct']]" />
你知道我该如何解决这个问题吗


谢谢

我看到两个问题。首先,应关闭methodArguments中的第一个表达式,数组的MEL语法为{},表达式为:

<invoke object-ref="ResponseHandler" method="nullPayload" methodArguments="#[message], #[ { 'getProducts', 'getProduct' } ]" />

我还尝试将方法更改为接收字符串[],但由于出现错误而失败,似乎Mule在这里做得不好。

Hi,根据您的回答,我仍然有相同的错误,它仍然认为我尝试调用的方法有3个参数。您是对的,我得到了相同的结果,我正在更新我的答案。但是语法现在真的不那么性感了!我的目的是避免像这样初始化它(我可以使用groovy)。您还有其他想法吗?调用程序解析参数的方式似乎有错误,不幸的是,我找不到更好的方法。我将向mule支持部门提交此案例,并向您提供最新的答案。
Single method "nullPayload", with "3" arguments not found
<invoke object-ref="ResponseHandler" method="nullPayload" methodArguments="#[message], #[ { 'getProducts', 'getProduct' } ]" />
<invoke object-ref="ResponseHandler" method="nullPayload" methodArguments="#[message], #[ a = new ArrayList(); a.add('getProducts'); a.add('getProduct'); return a; ]" />
public void nullPayload(MessageContext message, ArrayList methods) {
    message.setPayload(message.getPayload() + "OK1");
}