【问题标题】:How to access the invocation property?如何访问调用属性?
【发布时间】:2016-06-20 22:55:28
【问题描述】:
我正在尝试从调用属性访问 _clienName。我尝试了下面的一个,但没有帮助。有什么想法吗 ?真的可以在 mule 流中访问调用属性吗?
#[message.invocationProperties['_clientName']]
Message properties:
INVOCATION scoped properties:
__httpEvent=HttpEvent #188...9{apiName=.....95574017,something=99034}
_clientId=680.....81d97344
_clientName=abcd-app
INBOUND scoped properties:
【问题讨论】:
标签:
mule
mule-el
anypoint-studio
cloudhub
【解决方案1】:
可以通过 flowVars 访问调用属性:#[flowVars['_clientName']] 或 #[flowVars._clientName]
【解决方案2】:
在 Mule EE 3.4 之后,所有调用属性的命名都更改为 FlowVariables 。即使现在,如果您尝试使用 #[flowVars.name] ,调用属性也将起作用。在消息属性转换器中,您可以选择仅设置为调用属性,但它可以在流程的其余部分作为 flowVars 访问。
【解决方案3】:
在 mule 调用中,作用域属性只不过是 flowVars。因此,您可以使用以下 mule 表达式访问它们
#[flowVars.'_clientName']
在上面的表达式中,不需要将 _clientName 括在方括号中,只需像我一样引用它们即可。
仅供参考
会话范围的属性不过是 sessionVars。因此,您可以使用#[sessionVars.'_clientName'] 访问它们。
虽然您没有询问会话范围属性,但我已经回答了它,因为通过阅读您的问题,我知道您是通过查看控制台中由 Mule 的 Logger 组件引起的日志来提出问题的.
记录器不仅记录调用范围的属性,还记录会话范围的属性。所以我想你可能会想到什么是 Session 范围属性,所以回答它。