установка карты в качестве полезной нагрузки в муле 3 с использованием значений сеанса из переменных сеанса

У меня есть входящий запрос GET на мой локальный хост. Я извлек все параметры URI из запроса и сохранил их в переменных сеанса. Теперь проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь установить карту в качестве полезной нагрузки, используя значения сеанса.

При поиске правильного метода для этого я наткнулся на this.

Описанный здесь метод верен и работает в следующем случае, когда я жестко кодирую пару ключ-значение.

<set-payload value="#[['Test' : 'hjhj' ]]"  encoding="UTF-8"/>

Распечатывается следующее сообщение:

Payload               : {Test=hjhj}
Payload Type          : java.util.HashMap

Но когда я использую тот же метод и пишу следующий код, используя переменную сеанса:

 <set-session-variable variableName="transactionAmount" value="#[message.inboundProperties.'http.query.params'.amount]" doc:name="Session Variable"/>

<set-payload value="#[['Test' : #[sessionVars.transactionAmount] ]]"  encoding="UTF-8"/>

Сообщение, которое печатается:

Payload               : {Test=[1]}
Payload Type          : java.lang.String

Подскажите пожалуйста как мне побороть эту проблему. Я застрял в этом надолго.

ПРИМЕЧАНИЕ. Я использую Mule 3.9.

Заранее спасибо!!


person Anand Singh    schedule 29.11.2019    source источник
comment
Почему вы используете переменные сеанса вместо переменных потока? По умолчанию вы должны использовать переменные потока.   -  person aled    schedule 29.11.2019


Ответы (1)


Нет необходимости во вложенных оценщиках выражений #[]

Попробуй это:

<set-payload value="#[['Test' : sessionVars.transactionAmount]]" />
person Ryan Carter    schedule 29.11.2019