繁体   English   中英

如何读取mule esb中的参数

[英]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 脚本中使用它,请参考这个

使用 Groovy 获取 ESB Mule 消息的入站属性

这基本上告诉你可以将它用作

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

或者

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM