2012-11-22 39 views
0

我有一個使用org.apache.commons.net.ftp.FTPClient從遠程FTP服務器下載文件的無狀態會話Bean(在JBOSS容器中)。然後它暫時將文件存儲在本地System tmp目錄(java.io.tmpdir)中,並主要通過使用Hibernate將其添加到數據庫中來處理內容。在JBoss中使用EJB3的FTP客戶端

現在EJB規範告訴我不要使用java.io.File,java.io.FileInputStream等等。基本上不做任何「直接」文件系統訪問。

現在我該怎麼做我的任務?有沒有人有提示,鏈接,例子?

預先感謝您

mostart

+0

也許你應該通過自己的應用程序/ http服務器聯繫其他服務器來獲取數據?只是說。 – SJuan76

+0

遠程服務器是不受我控制的第三方服務器。它只允許ftp客戶端訪問。 – mostart

回答

0

你不應該訪問本地文件系統來存儲你會在你的應用程序後使用任何數據。如果您的應用程序駐留在羣集上,那麼本地存儲的文件將無法從每個羣集成員訪問,這就是爲什麼文檔根本不推薦使用java.io。這是避免這種不一致的最簡單方法。但是,如果你只需要處理臨時文件,你可以在bean的生命週期結束之前刪除它,那麼你可以使用java.io而不用擔心。關鍵是,不要在本地存儲任何您希望以後通過應用訪問的內容。

0

如何擁有自己的本地/遠程FTP來存儲接收的文件服務器?然後,您只需使用FTPClient,而不是直接訪問文件系統。

0

好的,我發現我可以重構模塊,直接在下載流上運行,而不是暫時保存在文件系統中。

感謝您的提示..