讓我們的影像,我想傳遞一個列表到JDBC變壓器。騾子ESB,一個JDBC變壓器內的「IN」操作符
舉例來說,我在流創建列表:
<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)
有一些逃避的問題,也許。我用不同的分隔符和問題依然存在......
什麼建議嗎?
什麼版本您使用的BTW?我看到'#[有效負載:]'所以我想的是3.2或更高版本?否則,這將是'#[message.payload]'... –
「3.3.1企業」 ...... –
BTW,我做(在Java中)的自定義變壓器來解析該查詢字符串,並做的東西與它。我'不太清楚爲什麼IN操作員不工作 –