MEL 中的 Mule 变量作为字符串

Mule variable in MEL as String

我有一个从资源中读取文件的表达式:

#[Thread.currentThread().getContextClassLoader().getResourceAsStream('abc.txt')]

它工作正常,但我想使用这样的变量:

#[Thread.currentThread().getContextClassLoader().getResourceAsStream(flowVars['fileName'])]

它不起作用,

  1. 我怎样才能让它像第一个 MEL 一样工作?
  2. 如何使用 MEL 读取绝对路径 "D://input/abc.txt" 中的文件?

感谢您的帮助。

已解决

  1. 使用 flowVars.filename 而不是 flowVars['fileName'] 它有效,但我无法得到它,我将记录器与此 MEL #[flowVars['filename']] 一起使用,它也有效,但在第二个 MEL 中它失败。

1) 您使用的是两种不同方法的不同案例。变量名称区分大小写。

2) 只需使用 FileInputStream:

 #[new FileInputStream("path")]

或者使用文件 transport/Mule 请求者模块更好。

试试这个,使用变量名而不是使用关键字 "flowVars"

#[Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)]