我正在向mule发送一些参数,这些参数正在通过我发送的8081中的http入站进行监听。
http://localhost:8081/hey?age=manoj
但我不知道如何从消息中获取此信息? 我知道我可以从消息和有效负载访问它,但是当我尝试这样做时
#[message payload: ['age']]
我收到错误,有效载荷是一种字符串类型,我非常混淆骡子。 我想要年龄值。
答案 0 :(得分:6)
如果您使用的是Mule 3.6或更高版本,则表达式已更改。
所以现在,您需要以下表达式来获取值: -
#[message.inboundProperties.'http.query.params'.age]
您可以在此查找参考资料: - https://developer.mulesoft.com/docs/display/current/HTTP+Listener+Connector
答案 1 :(得分:1)
这将作为入境财产进入。您可以使用MEL访问它:
<logger message="#[message.inboundProperties['age']]" level="INFO" doc:name="Logger"/>
请注意,尽管您需要确保在与HTTP入站端点相同的流中使用inboundProperty。
答案 2 :(得分:1)
您可以通过入站属性 http.query.params 检索HTTP查询参数。要获取年龄参数,请使用以下MEL表达式
#[message.inboundProperties.'http.query.params'.get('age')]
答案 3 :(得分:0)
您需要使用Mule HTTP Body to Param Map转换器,将Params转换为Map。
<http:body-to-parameter-map-transformer />
然后为了访问参数,要使用的MEL表达式为#[payload ['age']]
希望这有帮助。
答案 4 :(得分:0)
在Mule 3.6或3.7中,如果您在mule应用程序中使用了Body to Parameter变换器,则不推荐使用此变换器。如果需要访问入站属性值,可以使用message.inboundProperties。
执行此操作示例:
<set-payload value="#[message.inboundProperties.'http.query.params']" doc:name="Set Payload"/>
答案 5 :(得分:0)
如果您想在groovy脚本中使用它,请参阅此
getting inbound properties of ESB Mule message using Groovy
基本上告诉你可以用它作为
message.getInboundProperty('http.query.params')?.yourFantasticParam
或
message.getInboundProperty('http.query.params')?.age