2014-09-10 4 views
1

Я создал пример приложения мула, который извлекает одну строку из моей базы данных. Он извлекает USER_NAME и USER_ID из базы данных. , когда я конвертировать результат в JSON или XML Я получаю выход какMULE ESB: Сохранение результата из запроса Sql в переменной сеанса

[{ "USER_ID": "U001", "USER_NAME": "Dharmin"}]

Теперь я хочу, чтобы сохранить USER_ID и USER_NAME в Сессию переменные. Может ли кто-нибудь меня навестить?

редактирования: обновлено основное изображение

http://imgur.com/PzvG5eW

+0

@ Анирбан просил вас опубликовать поток XML, а не изображение. Если вы перейдете на вкладку «Конфигурация XML», вы можете получить код. Это покажет все ваши настройки. – SteveS

ответ

1

потока После преобразования в формат JSON Добавьте это: -

<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object"/>

и после этого поместить значение в переменной сеанса, используя следующее: -

<set-session-variable doc:name="Session Variable" value="message.payload.USER_ID" variableName="USER_ID"/> 

и

<set-session-variable doc:name="Session Variable" value="message.payload.USER_NAME" variableName="USER_NAME"/>

+0

Я получаю «Не удалось преобразовать из« json »в« java.util.HashMap ». Полезная нагрузка сообщения имеет тип: String (org.mule.api.transformer.TransformerMessagingException). Полезная нагрузка сообщения имеет тип: String« –

+0

Могли бы вы PLS обновить вопрос с вашим потоком Mule? Затем я могу предложить решение на основе вашего потока –

0

ли вам необходимость использовать результаты из БД как Json?

Если нет, не нужно даже переводить значения в JSON, прежде чем сохранять их в sessionVars. Доступ к ним непосредственно из Payload после вызова DB:

enter image description here

enter image description here

enter image description here

А вот конфигурация XML:

<flow name="testsFlow"> 

    <db:select config-ref="ORacle_DBCP_Config" doc:name="inputdata"> 
     <db:parameterized-query><![CDATA[SELECT 'U001' AS USER_ID, 'Dharmin' AS USER_NAME FROM DUAL]]></db:parameterized-query> 
    </db:select> 
    <set-session-variable variableName="userName" value="#[payload[0].USER_NAME]" doc:name="userName"/> 
    <set-session-variable variableName="userID" value="#[payload[0].USER_ID]" doc:name="userID"/> 
    <logger message="#[&quot;UserID: &quot; + sessionVars.userID + &quot; | UserName: &quot; + sessionVars.userName]" level="INFO" doc:name="Output the test"/> 
</flow> 

Выход регистратора является:

processor.LoggerMessageProcessor: UserID: U001 | UserName: Dharmin

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

  • Нет связанных вопросов^_^