我在我的应用程序中使用 EJB 3.1。
我想在我的应用程序中将一个 EJB 的 JNDI 查找名称发送到另一个应用程序,以便它可以在运行时使用该名称并与我的 EJB 进行通信。由于查找名称取决于部署在 EJB 容器上的 ear 文件的名称,每次在我的应用程序中进行任何更改时,这些 ear 文件的名称都会更改。
以编程方式找出任何 EJB 的查找名称的过程是什么。
最佳答案
首先,我不推荐这种方法。为什么不修复 EJB 的 JNDI 名称?
也就是说,你可以调用一个方法 InitialContext#list
遍历 JNDI 树并找出 EJB 的名称。有一个很好的代码示例 here ,所以我就不重复了。重要提示 - 调用 ctx.list("")
只会为您提供 JNDI 树的第一级,因此您必须递归调用该方法才能获得 EJB 名称。提示:EJB 通常部署在分支 下ejb .
也可以看看:
关于jakarta-ee - 如何以编程方式查找 EJB 的 JNDI 查找名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15325142/