4

我正在向 mule 发送一些参数,该参数通过我正在发送的 8081 中的 http 入站进行侦听。

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

但我不知道我怎么能把它当作来自消息?我知道我可以从消息和有效负载中访问它,但是当我尝试这样做时

#[message payload: ['age']]

我收到错误消息,payload 是 String 类型,我对 mule 感到非常困惑。我想要年龄值。

4

6 回答 6

7

如果您使用的是 Mule 3.6 或更高版本,则表达式已更改..
所以现在,您需要以下表达式来获取值:-

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

您可以在此处找到参考资料供您查询:- https://developer.mulesoft.com/docs/display/current/HTTP+Listener+Connector

于 2015-08-06T06:36:56.450 回答
1

您可以通过入站属性http.query.params检索 HTTP 查询参数。要获取年龄参数,请使用以下 MEL 表达式

#[message.inboundProperties.'http.query.params'.get('age')]
于 2015-01-10T18:02:36.537 回答
1

这将作为入站属性出现。您可以使用 MEL 访问它:

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

请注意,尽管您需要确保在与 HTTP 入站端点相同的流中使用 inboundProperty。

于 2014-11-26T07:45:13.263 回答
0

您需要使用 Mule HTTP Body to Param Map 转换器,将 Params 转换为 Map。

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

然后为了访问参数,要使用的 MEL 表达式是 #[payload['age']]

希望这可以帮助。

于 2014-11-04T16:39:58.440 回答
0

在 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"/>
于 2015-10-06T16:14:44.710 回答
0

如果你想在一个 groovy 脚本中使用它,请参考这个

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

这基本上告诉您可以将其用作

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

或者

message.getInboundProperty('http.query.params')?.age
于 2017-08-17T18:17:52.000 回答