【问题标题】:Accessing properties set at runtime using property ${} notation in Mule flow在 Mule 流中使用属性 ${} 表示法访问在运行时设置的属性
【发布时间】:2014-04-17 14:53:04
【问题描述】:

在 Mule 流程中,我在流程中设置了如下属性:

    <set-property propertyName="certPath" value="/tmp/#[aVariable]/certificate.pem" doc:name="Property"/>

我现在尝试在我的 sftp outbound-endpoint identityFile 属性中使用它,如下所示: identityFile="${certPath}"

这不起作用,并将占位符作为字符串(按原样)。

我是否在设置和访问属性的方式上遗漏了什么?

我还尝试在会话范围内添加消息属性,但是在尝试 ${session.certPath} 时也没有任何东西被评估。

【问题讨论】:

  • 什么是&lt;set-property&gt;?那不是蚂蚁。这是否是 Ant 正在执行的构建文件的一部分?
  • 这是在 Mule 中,您可以使用此构造在 XML 流中设置“属性”。然后,您应该使用 ant 样式的符号来访问它,但到目前为止,我还没有弄清楚如何实际这样做。

标签: java ant properties mule mule-el


【解决方案1】:

为了在流程中访问属性集,您需要使用 Mule 表达式语言。

尝试使用以下方式访问您的资源。

#[message.outboundProperties['certPath']]

注意:这仅在同一流中访问该属性时有效。

ant 样式访问${session.certPath} 用于从属性文件加载属性。

有关 MEL 的更多详细信息,请参阅以下链接。

http://www.mulesoft.org/documentation/display/current/Property+Transformer+Reference

希望这会有所帮助。

【讨论】:

  • 你知道它是否在 sftp 端点的 identityFile 属性中工作吗?根据经验,我放置在那里的骡子表达式根本没有被评估,而是被视为字符串
  • 不,这行不通。这是我得到的信息:来自处理引擎的消息:尝试写入文件时出现意外异常,消息为:找不到 IdentityFile '#[message.outboundProperties['certPath']]'
  • 表达式被视为字符串,而不是被解析为该属性或其他变量的值。
  • 唯一的解决方案可能是实际创建一个组件,该组件使用正确的文件路径调用 SftpClient 类本身。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 2011-05-19
  • 1970-01-01
相关资源
最近更新 更多