如何将文件加载到会话bean中

Gad*_*adi 4 java java-ee ejb-3.0

我有一个java EE应用程序EE5 EJB3.我使用NetBeans 6.7和GlassFish 2.x开发我需要一个部署/客户端特定的配置文件(*.xsl,*.xml).

我的问题是:

1)我在哪里放置ear文件外部的文件?

2)如何将文件加载到会话bean中?我可以使用注射吗?

我设法使用ejb-jar.xml为文件名注入@Resource.

提前谢谢了.G.

Pas*_*ent 5

我想这不是你所期待的,但正确的答案是你不应该这样做!根据EJB规范,更准确地说是编程限制:

企业bean不得使用该java.io包来尝试访问文件系统中的文件和目录.

这句话之后是这样的解释:

文件系统API不适合业务组件访问数据.业务组件应使用资源管理器API(如JDBC)来存储数据.

这句话背后的原因是:

  1. 访问文件系统不是事务性的,会损害组件的可分发性.
  2. 从EJB访问文件系统会损害其可部署性(资源不在EJB容器的控制之下,并且EJB无法在集群中轻松移动).
  3. 访问文件系统是一个潜在的安全漏洞.

既然你知道这一点,如果你仍然想要做你的想法,如果你的EJB容器不限制使用java.io包中的类,那么我会在类路径上放一个只读文件,最好是在JAR中,并使用getResource()getResourceAsStream()方法访问它java.lang.Class.但实际上,您应该牢记规范,它可以帮助您构建可移植的应用程序.