2014-11-04 5 views
3

Я отправляю некоторый параметр в mule, который прослушивает через http входящий в 8081, который я отправляю.Как читать параметр в mule esb

http://localhost:8081/hey?age=manoj 

Но я не знаю. Как я могу воспринимать это как из сообщения? Я знаю, что могу получить к нему доступ из сообщения и полезной нагрузки, но когда я пытаюсь сделать это

#[message payload: ['age']] 

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

+0

Могли бы вы поделиться фактическое сообщение об ошибке? – Rohit

ответ

0

Вам необходимо использовать Mule HTTP Body для преобразования Param Map, чтобы преобразовать Params в Map.

<http:body-to-parameter-map-transformer />  

Тогда симметричный доступ параметра выражения MEL, который будет использоваться в # [полезной нагрузке [ 'возраст']]

Надеется, что это помогает.

0

Это произойдет как входящее имущество. Вы можете получить доступ к нему с помощью MEL:

<logger message="#[message.inboundProperties['age']]" level="INFO" doc:name="Logger"/> 

Будьте осторожны, вы должны убедиться, что использовать inboundProperty в том же потоке, что и ваш HTTP въездного конечной точки.

1

Вы можете получить параметры HTTP-запроса через входящее свойство http.query.params. Для получения параметра возрастного используйте следующую MEL выражение

#[message.inboundProperties.'http.query.params'.get('age')] 
5

Если вы используете Mule 3.6 версии или выше, выражение было изменено ..
Итак, вам нужно следующее выражение, чтобы получить значение: -

#[message.inboundProperties.'http.query.params'.age] 

вы можете найти ссылку здесь для вас запрос: - https://developer.mulesoft.com/docs/display/current/HTTP+Listener+Connector

+0

Работает в муле 3.7 – JRichardsz

0

в Mule 3.6 или 3.7, если вы использовали Тело в параметр трансформатора в ваши приложения мула, это устарело. Если вам нужно получить доступ к значениям входящих значений, вы можете сделать это с помощью message.inboundProperties.

[message.inboundProperties.'http.query.params']

Пример:

<set-payload value="#[message.inboundProperties.'http.query.params']" doc:name="Set Payload"/> 
0

Если вы хотите использовать его в заводной скрипт, пожалуйста, обратитесь к этому

getting inbound properties of ESB Mule message using Groovy

который в основном говорит, что вы можете использовать его как

message.getInboundProperty('http.query.params')?.yourFantasticParam 

или

message.getInboundProperty('http.query.params')?.age