我有一个从 Swing 客户端远程访问的 EJB,以及通过 servlet/JSP 在本地访问的 EJB。我想将我的 EJB 的封装从 EJB/WAR/EAR 切换到 EJB/WAR,因为它更易于使用。
我说的更简单是什么意思?例如,在 Eclipse 中,我可以拥有一个包含 EJB/web 类的项目,而不是拥有一个 EJB + WAR + EAR 项目(我的客户端是 Eclipse 中的一个单独项目)。
是否可以将 EJB 打包到 WAR 中并可以远程访问?
我有一个从 Swing 客户端远程访问的 EJB,以及通过 servlet/JSP 在本地访问的 EJB。我想将我的 EJB 的封装从 EJB/WAR/EAR 切换到 EJB/WAR,因为它更易于使用。
我说的更简单是什么意思?例如,在 Eclipse 中,我可以拥有一个包含 EJB/web 类的项目,而不是拥有一个 EJB + WAR + EAR 项目(我的客户端是 Eclipse 中的一个单独项目)。
是否可以将 EJB 打包到 WAR 中并可以远程访问?
EJB-in-WAR 的目的主要是简化 WAR 使用的本地 EJB 的打包。但是,即使对其他技术有限制(具体来说,不允许实体 bean 和 JAX-RPC 端点),我也找不到对打包在 WAR 中的远程 EJB 的限制,这使我相信远程视图在 WAR 中是允许的规范视角。我没有广泛的供应商实现知识,但我已经测试过它可以在 WebSphere Application Server 上运行。
根据 Web 配置文件和 EJB 3.1 规范,Java EE Web 配置文件产品只需要提供 EJB Lite,它不支持 EJB 的远程客户端。
但他们可以提供远程 ejb 客户端连接作为产品可选组件。
因此,如果您想将远程 EJB 打包到 WAR 中,则必须寻找提供此服务的 Java EE Web 服务器,并注意其他 Java EE 6 Web 服务器不需要相同的行为。
有用的链接:http: //download.oracle.com/otndocs/jcp/javaee_web_profile-6.0-fr-eval-oth-JSpec/
http://download.oracle.com/otndocs/jcp/ejb-3.1-fr-eval-oth-JSpec/