Как прочитать параметр в MULE ESB

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

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

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

#[message payload: ['age']]

Я получаю сообщение об ошибке, что полезная нагрузка является типом String, и я очень запутан в муле. Я хочу возрастное значение.

6 ответов

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

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

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

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

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

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

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

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

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

получение входящих свойств сообщения ESB Mule с помощью Groovy

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

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

или же

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

Вам нужно использовать преобразователь Mule HTTP Body to Param Map, чтобы преобразовать Params в карту.

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

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

Надеюсь это поможет.

В Mule 3.6 или 3.7, если вы использовали преобразователь Body to Parameter в своих приложениях mule, это не рекомендуется. Если вам нужен доступ к значениям входящих свойств, вы можете сделать это с помощью message.inboundProperties.

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

Пример:

    <set-payload value="#[message.inboundProperties.'http.query.params']" doc:name="Set Payload"/>
Другие вопросы по тегам