2012-01-30 59 views
2

我读到的最佳实践为EJB的JNDI映射这篇大文章:了解EJB链接标记

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和这个简单的符号意味着Bean2必须找到这个J2EE应用程序包或.ear文件。

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

它真的有用吗?

回答

2

这里有一些场景是希望澄清为什么<ejb-link/>(或@EJB(beanName="..."))和EJB参考的绑定都是有用的和互补的:

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

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

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