Давайте представим, что я хотел бы передать список в преобразователь 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)
Возможно, есть некоторые проблемы с бегством. Я использовал разные разделители, и проблема все еще существует...
Любое предложение ?
#[payload:]
, так что я думаю 3.2 или старше? Иначе это было бы#[message.payload]
... - person David Dossot   schedule 28.02.2014seasonMbIds
что-то содержит? Также это.join("',' ")
будет производить'11',' 22',' 33'
. Наконец, вы являетесь пользователем EE, поэтому вам следует использовать коннектор JDBC EE, который более функционален, чем коннектор CE. Также рассмотрите возможность обращения в профессиональную поддержку MuleSoft, поскольку вы используете EE. - person David Dossot   schedule 28.02.2014