我读了这篇关于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名称是什么?
真的有用吗?
答案 0 :(得分:2)
以下是一些场景,希望澄清为什么<ejb-link/>
(或@EJB(beanName="...")
)和EJB ref绑定既有用又互补:
应用程序本身可以在逻辑上分解为组件,开发人员选择使用EJB来实现这些组件。在这种情况下,应用程序开发人员知道客户端想要使用的目标EJB组件。如果有多个组件实现相同的界面,则需要消除歧义,并且可以使用<ejb-link/>
。
应用程序依赖于外部服务。在这种情况下,应用程序知道它依赖于外部服务,因此无法使用<ejb-link/>
,因为同一应用程序中不存在服务实现。
应用程序依赖于外部服务,但在同一应用程序中提供了最小的实现。在这种情况下,开发人员可能会使用#1中的<ejb-link/>
,但部署者可以灵活地覆盖#2中的选择。
答案 1 :(得分:1)