Как прочитать параметр в 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"/>