我在耳朵中成功部署了一个@Stateless @Local Bean。当我浏览 JNDI 树时,我可以看到新的 EJB 3.1 标准全局 JNDI 名称。(java:global/product/product-ejb/ProductManagement)
我想在同一个应用服务器上的不同应用程序中使用这个 EJB。我需要为此 EJB 添加远程接口吗?
我在耳朵中成功部署了一个@Stateless @Local Bean。当我浏览 JNDI 树时,我可以看到新的 EJB 3.1 标准全局 JNDI 名称。(java:global/product/product-ejb/ProductManagement)
我想在同一个应用服务器上的不同应用程序中使用这个 EJB。我需要为此 EJB 添加远程接口吗?
规范不需要跨应用程序访问本地客户端视图,但您的容器可能会选择性地支持。如果你希望你的应用程序是可移植的,你不应该依赖它并使用远程接口(一个像样的容器应该优化同一个 JVM 内的调用)。从 EJB 3.1 规范:
3.2.2 本地客户端
会话 bean 可能有本地客户端。本地客户端是与会话 bean 并置在同一个 JVM 中的客户端,会话 bean 提供本地客户端视图并且可能与 bean 紧密耦合。会话 bean 的本地客户端可以是另一个企业 bean 或 Web 组件。
通过本地客户端视图访问企业 bean 需要在同一 JVM 中配置本地客户端和提供本地客户端视图的企业 bean。因此,本地客户端视图不提供远程客户端视图提供的位置透明度。
通过本地客户端视图访问企业 bean 只需要支持与提供本地客户端视图的企业 bean 打包在同一应用程序中的本地客户端。本规范的兼容实现可以选择支持从打包在不同应用程序中的本地客户端访问企业 bean 的本地客户端视图。对本地客户端视图的跨应用程序访问的配置要求是特定于供应商的,并且超出了本规范的范围。依赖于应用程序间访问本地客户端视图的应用程序是不可移植的。
...