访问EJB中的文件

时间:2014-10-07 11:26:27

标签: java ejb java-ee-7 ejb-3.2

根据EJB规范,我是否允许在EJB中使用java.iojava.nio包来操作文件?

1 个答案:

答案 0 :(得分:4)

不,您不被允许这样做,因为如果应用程序将在某个时刻进行群集,您永远不会知道您的文件保存在哪个位置。因此,Java EE环境中的文件操作是相当不安全的操作。

安全地执行此操作的方法可能是在JNDI中提供服务,这将关注您的对象序列化 - 请参阅示例

ByteArrayOutputStream baos= new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(myObj);

new InitialContext().bind("path/to/FileManipulator", baos.toByteArray());

有关进一步说明,另请参阅this答案。此外,here是一篇文章,描述了在EJB中使用java.io的规范。