2014-10-17 2 views
1

В Mule MEL, как получить стоимость недвижимости?Mule MEL, как получить стоимость недвижимости?

В коде Java, я сделал это:

eventContext.getMessage().setInvocationProperty("amount", 100); 

Я попробовал эти варианты

#[message.invocationProperty.invocation] 
#[message.invocationProperty('invocation')] 
#[message.getInvocationProperty().get('invocation')] 

Я понимаю, что сообщение является экземпляром org.mule.el.context.MessageContext, то какой правильный синтаксис?

ответ

3

Попробуйте #[message.inboundProperties['propertyName']] или #[message.invocationProperties['propertyName']]

+0

Ваше решение работает. сначала ознакомьтесь с моим обновлением. В потоке я устанавливаю значение переменной следующим образом: . На этот раз я получил эту ошибку: java.lang.ClassCastException: java.lang.Integer нельзя передать в java.lang.String. у вас есть какое-то решение? – user595234

+0

У меня нет привязки '.invocationProperties' к переменной свойства сообщения. Я использую mule 5.1.2 anypoint studio и java 1.8V. Это вызывает исключение, когда я пытаюсь message.invocationProperties – Sahal

+0

Попробуйте использовать Anypoint Studio 5.2.0, я не знаю, почему он не работает для вас, но использование последней версии, возможно, может решить вашу проблему. –

0

Этот ответ на ваш комментарий

<set-variable variableName="amount" value="message.invocationProperties['amount']" /> 

Решение является

<set-variable variableName="amount" value="#[message.invocationProperties['amount']]" /> 
3

Если вы установите переменную с областью Призыва (с Message обогатитель или переменной), вам может получить переменную с синтаксисом ниже:

#flowVars['your_Variable_Name']

+1

Не забудьте '#'. Для всех нубов, подобных мне, это полное выражение, которое сработало для меня: '# [flowVars.your_Variable_Name]'. – Blaine

+0

Хороший ответ !!! – Sahal

0

Чтобы получить свойство призывания сообщения такого синтаксиса:

#[flowVars.parameter] или #[flowVars['paramater']]

0

Хотя sintaxis почти то же самое, это зависит от объема переменной собственности, но наиболее обычный способ:

#[flowVars['flow_var_name']]

По моему личному мнению Я не» т рекомендует использовать:

#[flowVars.variable]

Потому что в какой-то сложной среде со многим MessageContext переключается переменный могут заблудиться. Я рекомендую взглянуть на следующий post from Mulesoft oficial blog, который показывает, как обрабатывать свойства и переменные.

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