首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaEE 7: EJB名称没有接口

JavaEE 7: EJB名称没有接口
EN

Stack Overflow用户
提问于 2014-06-14 15:17:31
回答 1查看 2.7K关注 0票数 2

我使用GF4服务器,在它的日志中有:

java:global/com.test.cms.svr.web_1.0.0/com.test.cms.svr.web.Service2,java:global/com.test.cms.svr.web_1.0.0/com.test.cms.svr.web.Service2!com.test.fw.svr.web.bundle.ComponentService]]:EJB com.test.cms.svr.web.Service2的可移植JNDI名称

我的问题:

  1. 为什么有两个jndi名称-有接口和没有接口?
  2. 为什么我只能使用带有接口的jndi名称来获取bean,即使EJB只是本地的呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-15 22:06:45

为什么有两个jndi名称?有接口的和没有接口的?

这是一个名为可移植JNDI名称的EJB3.1特性。这是来自这个博客的很好的解释

客户端应用程序需要使用全局JNDI名称来查找EJB。一直以来,ejb规范都没有提到这种全局jndi名称的可移植性。这允许每个供应商以特定于供应商的方式为EJB分配全局jndi名称。这意味着使用全局JNDI名称执行查找的客户端代码在appserver供应商实现中本质上是不可移植的。 EJB3.1通过强制每个容器必须为EJB分配(至少一个)定义良好的全局JNDI名称来解决上述问题。EJB的(可移植的)全局JNDI名称的一般语法如下: java:global/[<application-name>]/<module-name>/<bean-name>!<fully-qualified-bean-interface-name> 除了上面的名称之外,如果EJB只公开一个客户端视图(也就是说,它只实现一个接口或无接口视图),容器也必须将bean映射到 java:global/[<application-name>]/<module-name>/<bean-name> 哪里

  1. <application-name>默认为没有包扩展名的包名(.ear文件名)。这可以在application.xml中重写。而且,只有当bean被打包在.ear文件中时,才适用。
  2. <module-name>默认为没有包扩展的包名(.war或.jar)。同样,这可以在ejb-jar.xml中重写。
  3. <bean-name>默认为bean的非限定类名。但是,如果@Stateful@Stateless@Singleton使用name属性,那么那里指定的值将用作bean名称。

GlassFish EJB中还有一些特定于GlassFish的附加信息。

为什么只能使用带有接口的jndi名称(即使EJB只是本地的)?

我猜您的意思是在同一个JVM中从同一个web应用程序中的另一个EJB或模块中查找。否则,如果没有@Remote接口,这是不可能的。以下是来自GlassFish EJB的两条语句:

我有一个带有本地接口的EJB组件。我可以从应用程序客户机或独立的java客户机访问它吗? 如果EJB组件正在服务器中运行,则否。EJB视图是一个优化的调用路径,它使用了按引用调用的语义。它仅适用于与目标EJB组件相同应用程序的web组件和EJB组件。 要从应用程序客户机或独立的java客户机访问服务器中运行的EJB组件,您需要使用远程3.x业务接口、2.x家庭接口或web服务。 如果使用GlassFish v3,一种选择是使用EJB3.1可嵌入的API。这允许Java SE程序直接在同一个JVM中执行EJB组件,而无需使用服务器进程。 我有一个带有本地接口的EJB组件。我可以从不同应用程序中的web组件访问它吗? 不是的。EJB规范只需要从同一个JVM中的同一个应用程序中访问EJB组件的本地EJB接口。一种选择是将ejb封装在与.war相同的.war中。如果使用GlassFish v3,第二个选项是直接将.war组件打包到.war中。

GlassFish EJB还包含关于这个主题的更多更详细的信息。

还请参见:

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24221358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档