使用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範圍的批量大小值?
在此先感謝。
是的,使用屬性直接做了工作。謝謝! –