2014-10-15 3 views
0

Мне нужен базовый поток Mule, чтобы выбирать строки из одной базы данных, преобразовывать полезную нагрузку и вызывать процедуру в другой базе данных. Я не хочу использовать компонент DataMapper, вместо этого я хотел бы использовать Java Transformer.Компонент Mule db Входная полезная нагрузка из другого запроса db

Мой XML поток:

<set-variable variableName="currentOrder" value="#[payload.increment_id]" doc:name="Variable"/> 
<db:select config-ref="MySQL_Configuration" doc:name="GET ORDER"> 
    <db:parameterized-query><![CDATA[select id from sales where id=#[currentOrder]]]></db:parameterized-query> 
</db:select> 
<custom-transformer class="com.mycompany.transformers.TargerProc" doc:name="Java"/> 
<db:stored-procedure config-ref="Oracle_Configuration" doc:name="PROC1"> 
    <db:parameterized-query><![CDATA[call proc1(:P1,:P2)]]></db:parameterized-query> 
    <db:in-param name="P1" type="NUMERIC" value="#[payload.id]"/> 
    <db:out-param name="P2" type="NUMERIC" value=""/> 
</db:stored-procedure> 

Первая проблема:

Message payload is of type: CaseInsensitiveHashMap 

Может кто-нибудь пролить некоторый свет на это? Я думаю, что это действительно просто.

Заранее благодарен!

ответ

1

Попробуйте <db:parameterized-query>{ call proc1(:P1,:P2) }</db:parameterized-query>: -

<set-variable variableName="currentOrder" value="#[payload.increment_id]" doc:name="Variable"/> 
<db:select config-ref="MySQL_Configuration" doc:name="GET ORDER"> 
    <db:parameterized-query><![CDATA[select id from sales where id=#[currentOrder]]]></db:parameterized-query> 
</db:select> 
<custom-transformer class="com.mycompany.transformers.TargerProc" doc:name="Java"/> 
<db:stored-procedure config-ref="Oracle_Configuration" doc:name="PROC1"> 
    <db:parameterized-query>{ call proc1(:P1,:P2) }</db:parameterized-query> 
    <db:in-param name="P1" type="NUMERIC" value="#[payload.id]"/> 
    <db:out-param name="P2" type="NUMERIC" value=""/> 
</db:stored-procedure> 
+0

:(не повезло могли бы вы помочь мне понять тип объекта, который мне нужно вернуться в Java трансформатором Позвольте мне поделиться мой вопрос мне нужно прочитать полезную нагрузку вернулся.?. из MySQL и применить некоторые правила, например удалить специальные символы, изменить некоторые значения перед отправкой, установить параметр процедуры и т. д. Большое спасибо за ваш ответ, я попробую все ваши советы. – cocardoso

+0

Вам нужно вернуть Object из вашего Java-класса в качестве DB ожидает объект –

+0

Без типа? Карта, HashMap, List, ArrayList ....? – cocardoso

Смежные вопросы