我有一个关于EJB 1.1的问题(是的,真的那么老...... - 请不要欺负我......)
所以问题是旧问题之一:为什么我不应该在EJB中做磁盘io?特别是阅读文件。
更精确的用例:它只是一个文件,需要作为某些特殊数据导出的模板。 所以它是:
有什么理由,为什么不从磁盘读取该模板文件? 当我尝试在EJB中执行磁盘操作时,是否存在任何技术限制,如ForbiddenOperationException。我已经进行了测试,阅读和转移工作正常。这种行为在EJB 2.x或3.x中是不同的吗?
非常感谢!
答案 0 :(得分:1)
这个限制在规范中允许EJB的集群,如果EJB是自包含的并且不依赖于外部环境(例如文件系统),则这更容易。
访问文件系统应该可以正常工作,但是,如果您真的想要遵守规范,可以将文件捆绑在EJB jar中,并使用Class.getResourceAsStream
从类路径访问它。
答案 1 :(得分:0)
不允许企业bean访问文件主要是因为 文件不是事务资源。允许EJB访问文件 或文件系统中的目录,或使用文件描述符 妥协组件可分发性,并且存在安全隐患。
您可以将文件打包到JAR中,以便您可以使用getResource()
或getResourceAsStream()
&可以改变,独立重新部署。
另外,如果您没有遇到当前方法的任何问题,那么它很好,但不建议按照规范。
答案 2 :(得分:0)
为什么不将它作为blob存储在数据库中?
然后您可以拥有一个管理员webapp来从浏览器
更改它您可以使用ldap对webapp进行身份验证/授权
哎呀,抱歉让生活如此复杂