[英]How to read parameter in mule esb
我正在向 mule 发送一些参数,它正在通过 8081 中的 http 入站侦听我正在发送。
http://localhost:8081/hey?age=manoj
但我不知道我怎么能把它当作消息? 我知道我可以从消息和有效负载访问它,但是当我尝试这样做时
#[message payload: ['age']]
我收到错误,payload 是 String 类型,我对 mule 非常困惑。 我想要年龄值。
如果您使用的是 Mule 3.6 或更高版本,则表达式已更改..
所以现在,您需要以下表达式来获取值:-
#[message.inboundProperties.'http.query.params'.age]
您可以在此处找到用于查询的参考:- https://developer.mulesoft.com/docs/display/current/HTTP+Listener+Connector
这将作为入站财产进入。 您可以使用 MEL 访问它:
<logger message="#[message.inboundProperties['age']]" level="INFO" doc:name="Logger"/>
尽管您需要确保在与 HTTP 入站端点相同的流中使用 inboundProperty,但请注意。
您可以通过入站属性http.query.params检索 HTTP 查询参数。 要获取年龄参数,请使用以下 MEL 表达式
#[message.inboundProperties.'http.query.params'.get('age')]
您需要使用 Mule HTTP Body to Param Map 转换器,将 Params 转换为 Map。
<http:body-to-parameter-map-transformer />
然后为了访问参数,要使用的 MEL 表达式是 #[payload['age']]
希望这可以帮助。
在 Mule 3.6 或 3.7 中,如果您在 mule 应用程序中使用Body to Parameter转换器,则此功能已被弃用。 如果您需要访问入站属性值,您可以使用message.inboundProperties
。
#[message.inboundProperties.'http.query.params']
例子:
<set-payload value="#[message.inboundProperties.'http.query.params']" doc:name="Set Payload"/>
如果你想在 groovy 脚本中使用它,请参考这个
这基本上告诉你可以将它用作
message.getInboundProperty('http.query.params')?.yourFantasticParam
或者
message.getInboundProperty('http.query.params')?.age
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.