我有一个无状态会话Bean(在JBOSS容器中),它使用org.apache.commons.net.ftp.FTPClient从远程FTP服务器下载文件。然后它将文件暂时存储在本地System tmp目录(java.io.tmpdir)中,并主要通过使用Hibernate将其添加到数据库中来处理内容。
现在EJB规范确实告诉我不要使用java.io.File,java.io.FileInputStream等。基本上根本不要进行任何“直接”文件系统访问。
现在我该如何完成任务?有没有人有提示,链接,例子?
提前谢谢
mostart
答案 0 :(得分:0)
如何拥有自己的本地/远程ftp服务器来存储传入的文件?然后你只需使用FTPClient而不是直接访问文件系统。
答案 1 :(得分:0)
好的,发现我可以重构模块直接操作下载Stream,而不是暂时将其保存在文件系统中。
感谢您的提示..
答案 2 :(得分:0)
您不应该访问本地文件系统来存储稍后将在您的应用程序中使用的任何数据。如果您的应用程序驻留在群集上,则无法从每个群集成员访问本地存储的文件,这就是文档根本不建议使用java.io的原因。这是避免这种不一致的最简单方法。
但是,如果您只需要使用临时文件(可以在bean的生命周期结束之前删除),那么您可以毫不费力地使用java.io。关键是,不要在本地存储您希望以后从您的应用访问的任何内容。