让我们想象一下我想将一个列表传递给一个 JDBC 转换器。
例如,我在流程中创建列表:
<scripting:transformer><scripting:script engine="groovy"><scripting:text>
// Some calculations and stuff
def single_quote_alias = "'"
def listString = seasonMbIds.join("',' ")
return single_quote_alias + listString + single_quote_alias // now it's like: '11','22','33'
</scripting:text></scripting:script></scripting:transformer>
然后将列表传递给另一个转换器:
<jdbc:outbound-endpoint connector-ref="XYZ" queryKey="someName" exchange-pattern="request-response" />
这是实际的查询:
<jdbc:query key="someName"
value="SELECT anID FROM aTable WHERE aField IN (#[payload:])" />
它给了我“超出范围的索引异常”:
Message : java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 (javax.script.ScriptException)
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. Index: 0, Size: 0 (java.lang.IndexOutOfBoundsException)
java.util.ArrayList:635 (null)
2. java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 (javax.script.ScriptException)
可能有一些逃避问题。我使用了不同的分隔符,问题仍然存在......
有什么建议吗?