2017-06-19 70 views
0

我在Apache camel中有一個新的需求,那就是我需要從FTP位置讀取一個文件,該位置包含文件名稱在同一個FTP位置的另一個文件。 所以我需要讀取第一個文件獲取文件名並讀取第二個文件名。我們如何在Apache駱駝中實現?使用Apache Camel FTP位置讀取文件

+0

你有什麼想達到這個目的? –

+0

我想下面的選項,但如何從文件1文件名2是從問題(「FTP://服務器」 +「密碼=密碼」 +「&antInclude =文件名」) \t \t \t \t \t \t .process(新處理器(){ \t \t \t公共無效處理(交易交換)拋出異常{ \t \t \t exchange.getIn()setBody(exchange.getIn()getBody(),String.class);。\t \t \t \t \t \t} \t \t \t}) \t \t \t \t \t \t。從(FTP://服務器 「+」 密碼=密碼 「+」 &antInclude = filename_2" ) – Raj

+0

我認爲你需要重新複習基礎知識。路由1應該獲取文件,提取主體並將其設置在交換屬性或標題中,然後調用路由2,查看存儲文件正文的位置並執行ftp提取。 –

回答

0

您可以編寫一個簡單的FTP路由,使用第一個文件(包含目標文件名)。一旦這個文件被讀取,你可以將內容轉發到一個route builder,在那裏你建立另一個FTP路由,它將消耗目標文件。

您可以使用FTP component include option指定要使用的文件名稱的模式。

+0

我在下面的選項嘗試,但如何從以前的文件中獲取文件名。 {從( 「FTP://服務器」 + 「密碼=密碼」 + 「&antInclude =文件名」) \t \t \t \t \t \t .process(新處理器(){ \t \t \t公共無效處理(交換交換)拋出異常{ \t \t \t exchange.getIn()setBody(exchange.getIn(。)getBody(),String.class); \t \t \t \t \t \t} \t \t \t}) \t \t \t \t \t \t。從(FTP://服務器 「+」 密碼=密碼 「+」 &antInclude = filename_2" )} – Raj