了解ejb-link标记

时间:2012-01-30 15:53:24

标签: java java-ee jboss ejb jndi

我读了这篇关于EJB-JNDI映射最佳实践的精彩文章:

http://www.ibm.com/developerworks/websphere/library/bestpractices/increase_app_portability.html

ejb-link的概念对我来说并不清楚。

例如,假设我们有一个包含这个的ejb-jar.xml:

<ejb-ref>
   <ejb-ref-name>ejb/Bean2Home</ejb-ref-name>
   <ejb-ref-type>Entity</ejb-ref-type>
   <home>com.ibm.wsc.Bean2Home</home>
   <remote>com.ibm.wsc.Bean2</remote>
   <ejb-link>Bean2</ejb-link>
</ejb-ref>

因此,预先确定目标EJB组件是Bean2,这个简单的表示法意味着必须在此J2EE应用程序包或.ear文件中找到Bean2。

因此,如果ejb-link标记足以指示链接到良好EJB组件的正确方法,那么汇编程序需要为此ejb-ref创建JNDI名称是什么?

真的有用吗?

2 个答案:

答案 0 :(得分:2)

以下是一些场景,希望澄清为什么<ejb-link/>(或@EJB(beanName="..."))和EJB ref绑定既有用又互补:

  1. 应用程序本身可以在逻辑上分解为组件,开发人员选择使用EJB来实现这些组件。在这种情况下,应用程序开发人员知道客户端想要使用的目标EJB组件。如果有多个组件实现相同的界面,则需要消除歧义,并且可以使用<ejb-link/>

  2. 应用程序依赖于外部服务。在这种情况下,应用程序知道它依赖于外部服务,因此无法使用<ejb-link/>,因为同一应用程序中不存在服务实现。

  3. 应用程序依赖于外部服务,但在同一应用程序中提供了最小的实现。在这种情况下,开发人员可能会使用#1中的<ejb-link/>,但部署者可以灵活地覆盖#2中的选择。

答案 1 :(得分:1)