0

我有一个无状态会话 Bean(在 JBOSS 容器中),它使用 org.apache.commons.net.ftp.FTPClient 从远程 FTP 服务器下载文件。然后,它将文件临时存储在本地系统 tmp 目录 (java.io.tmpdir) 中,并主要通过使用 Hibernate 将其添加到数据库中来处理内容。

现在 EJB 规范确实告诉我不要使用 java.io.File、java.io.FileInputStream 等。基本上不做任何“直接”文件系统访问。

现在我应该如何完成我的任务?有没有人有提示,链接,示例?

先感谢您

最艺术

4

3 回答 3

0

拥有自己的本地/远程 ftp 服务器来存储传入文件怎么样?然后您只需使用 FTPClient 而不是直接访问文件系统。

于 2012-11-22T10:49:28.417 回答
0

您不应访问本地文件系统来存储您稍后将在应用程序中使用的任何数据。如果您的应用程序驻留在集群上,那么每个集群成员都无法访问本地存储的文件,这就是文档根本不建议使用 java.io 的原因。这是避免这种不一致的最简单方法。

但是,如果您只需要使用临时文件,您可以在 bean 的生命周期结束之前将其删除,那么您可以毫无顾虑地使用 java.io。关键是,不要在本地存储您以后想从您的应用程序访问的任何内容。

于 2015-02-03T14:24:40.830 回答
0

好的,发现我可以将模块重构为直接对下载流进行操作,而不是将其临时保存在文件系统中。

谢谢你的提示。。

于 2012-11-22T11:05:46.727 回答