2015-08-27 96 views
0

我有一個表達波紋管來讀取資源文件:騾子變量作爲字符串

#[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失敗。
+0

似乎是正確的我,你得到什麼錯誤? –

+0

第二個MEL返回null有效載荷,第一個返回一個文件作爲流 – NhanHo

+0

我試着重現這一點,第一個和第二個mel都返回一個java.io.BufferedInputStream,這是預期的。 – Sudarshan

回答

0

1)您正在使用兩種不同方法的不同情況。變量名稱區分大小寫。

2)只需使用一個FileInputStream:

#[new FileInputStream("path")] 

甚至更​​好,也許使用文件傳輸/騾請求者模塊。

+0

謝謝@Ryan,它工作。 – NhanHo

-1

試試這個,使用變量名,而不是使用關鍵字「flowVars」

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