java - 了解 ejb-link 标记

标签 java jakarta-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 名称吗?

真的有用吗?

最佳答案

以下一些场景有望阐明原因 <ejb-link/> (或 @EJB(beanName="...") )和 EJB 引用绑定(bind)既有用又互补:

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

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

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

关于java - 了解 ejb-link 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066654/

相关文章:

jakarta-ee - 在哪里可以下载 Java EE 6 教程示例?

java - 我可以创建在 JBOSS 服务器上运行的类的对象吗?

java - 如何查看 hibernate 正在触发的查询?

java - HashMap 和 ArrayList 的 Android OutOfMemoryError

按下按钮时 javafx 循环

java - 我应该将图像存储在内容管理系统的什么位置?

java - 是否可以在运行时手动将消息驱动的 bean 订阅到 JMS 队列/主题?

java - 在 JBoss Wildfly 8.1 上获取 OracleConnection

java - 从 JavaScript (AJAX) 调用和使用 JBoss Web 服务

java - 如何在我们恢复游戏时显示 TextView 并在几秒钟后使其不可见