jakarta-ee - 如何以编程方式查找 EJB 的 JNDI 查找名称?

标签 jakarta-ee jboss7.x jndi ejb-3.1

我在我的应用程序中使用 EJB 3.1。

我想在我的应用程序中将一个 EJB 的 JNDI 查找名称发送到另一个应用程序,以便它可以在运行时使用该名称并与我的 EJB 进行通信。由于查找名称取决于部署在 EJB 容器上的 ear 文件的名称,每次在我的应用程序中进行任何更改时,这些 ear 文件的名称都会更改。

以编程方式找出任何 EJB 的查找名称的过程是什么。

最佳答案

首先,我不推荐这种方法。为什么不修复 EJB 的 JNDI 名称?

也就是说,你可以调用一个方法 InitialContext#list遍历 JNDI 树并找出 EJB 的名称。有一个很好的代码示例 here ,所以我就不重复了。重要提示 - 调用 ctx.list("")只会为您提供 JNDI 树的第一级,因此您必须递归调用该方法才能获得 EJB 名称。提示:EJB 通常部署在分支 下ejb .

也可以看看:

  • InitialContext
  • 关于jakarta-ee - 如何以编程方式查找 EJB 的 JNDI 查找名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15325142/

    相关文章:

    JavaEE6 DAO : Should it be @Stateless or @ApplicationScoped?

    java - hibernate Ant 工具

    java - -XX :+HeapDumpOnOutOfMemoryError Multiple heap dump creation

    jboss7.x - org.slf4j.helpers.NOPLoggerFactory 不能转换为 ch.qos.logback.classic.LoggerContext

    jboss - 将包含 MDB 的 .ear 文件部署到 JBoss 时出错

    java - JPA 是否要求数据源来自 JNDI?

    jndi - Java EE 6嵌入式Glassfish嵌入式derby EJB单元测试

    java - IceFaces 将其 CSS 和 JavaScript 资源放在每个页面上,无论它们是否使用 Ice 组件。有办法阻止这个吗?

    java - 将 JDBC 驱动程序连接到 MSSQL 数据库时出现问题

    java - Tomcat 如何注入(inject) JNDI 组件本地上下文?