【问题标题】:How to find the JNDI look-up name of EJB programmatically?如何以编程方式查找 EJB 的 JNDI 查找名称?
【发布时间】:2013-02-25 20:03:52
【问题描述】:
我在我的应用程序中使用 EJB 3.1。
我想将我的应用程序中的一个 EJB 的 JNDI 查找名称发送到另一个应用程序,以便它可以在运行时使用它并与我的 EJB 通信。由于查找名称取决于部署在 EJB 容器上的 ear 文件的名称,并且每次在我的应用程序中进行任何更改时,这些 ear 文件的名称都会发生变化。
以编程方式查找任意 EJB 的查找名称的过程是什么。
【问题讨论】:
标签:
jakarta-ee
jboss7.x
jndi
ejb-3.1
【解决方案1】:
首先,我不推荐这种方法。为什么不修复 EJB 的 JNDI 名称?
也就是说,您可以调用方法InitialContext#list 来遍历JNDI 树并找出您的EJB 的名称。有一个很好的代码示例here,所以我不会重复它。一个重要的注意事项 - 调用 ctx.list("") 只会为您提供第一级 JNDI 树,因此您必须递归调用该方法才能获得 EJB 名称。提示:EJB 通常部署在 ejb 分支下。
另见: