使用Mule,我需要以批处理方式循环一组记录(不想使用批处理作用域)。在foreach元素中,您可以指定批量大小来分割集合。ForEach范围中是否支持MEL来确定批量大小?
被说,如果你指定一个数字,它工作得很好。例如
<foreach doc:name="For Each" batchSize="100">
<logger message="#[flowVars.counter]" level="INFO" doc:name="Logger"/>
</foreach>
它会按我的意愿打印100个元素的批次。但是如果我使用MEL,它会引发NumberFormatException。这里,XML
<foreach doc:name="For Each" batchSize="#[flowVars.counter]">
<logger message="#[flowVars.counter]" level="INFO" doc:name="Logger"/>
</foreach>
异常
ERROR 2017-03-01 09:47:06,121 [main] org.mule.module.launcher.application.DefaultMuleApplication: null
java.lang.NumberFormatException: For input string: "[flowVars.batchSize]"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_121]
at java.lang.Integer.parseInt(Integer.java:580) ~[?:1.8.0_121]
at java.lang.Integer.valueOf(Integer.java:740) ~[?:1.8.0_121]
at java.lang.Integer.decode(Integer.java:1197) ~[?:1.8.0_121]
我打印的类类型的#[flowVars.batchSize],它是一个整数,所以,不应该是问题所在。相反,我认为foreach范围不允许您至少为此属性使用MEL。
我的问题是,是或不可能使用MEL来确定一个foreach范围的批量大小值?
在此先感谢。
是的,使用属性直接做了工作。谢谢! –