mule调用java组件作为数组参数

mule调用java组件作为数组参数,mule,Mule,属性文件: torun='GSD11','GSD12' torun='GSD11' 它适用于属性文件中如上所示的属性中的单个参数。但如果我在以下公司运行应用程序 `torun='GSD11','GSD12' 它给出的错误消息如下所示 1 (java.lang.ArrayIndexOutOfBoundsException). Message payload is of type: String 如何启用接收参数阵列?Mule消息的有效负载是一个对象。从而允许它处理任何类型的对象 如果您检查Mul

属性文件:

torun='GSD11','GSD12' torun='GSD11'

它适用于属性文件中如上所示的属性中的单个参数。但如果我在以下公司运行应用程序

`torun='GSD11','GSD12'

它给出的错误消息如下所示

1 (java.lang.ArrayIndexOutOfBoundsException). Message payload is of type: String

如何启用接收参数阵列?

Mule消息的有效负载是一个对象。从而允许它处理任何类型的对象

如果您检查MuleMessage接口,就会看到它

在上面的代码中,将来自入站端点http的任何内容发送到Springbean,并且假设它将是一个字符串

现在,http入站端点中的有效负载肯定会发生变化,这取决于您收到的请求类型get/post/put/etc,因此请小心

回到你的问题,如果你肯定有效载荷是一个数组,你可以改变你的方法。如果没有,我会建议你把它改成object,然后验证接下来的内容,并相应地进行施法

HTH

Mule docs说:

methodArguments=[1],[2]

methodArgumentTypes=java.lang.Float,java.lang.Float

但是我的列表是随机的,它会增长到100到1000,我不想把1000个参数类型放进去。 作为一个解决方案,我正在加载java组件中的mule-app.propertes并读取属性内容

public String deleteInvoice(){
      Properties prop = new Properties();
      InputStream input = DeleteTable.class.getClassLoader().getResourceAsStream("mule-app.properties");
      prop.load(input);
      return prop.getProperty("torun");
}
1 (java.lang.ArrayIndexOutOfBoundsException). Message payload is of type: String
public String deleteInvoice(){
      Properties prop = new Properties();
      InputStream input = DeleteTable.class.getClassLoader().getResourceAsStream("mule-app.properties");
      prop.load(input);
      return prop.getProperty("torun");
}