如何通过编程找到EJB的JNDI查找名称?

6

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

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

如何通过编程方式找出任何EJB的查找名称的过程。

1个回答

6

首先,我不建议使用这种方法。为什么不修复你的EJB的JNDI名称呢?

话虽如此,你可以调用InitialContext#list方法来遍历JNDI树,并找到你的EJB的名称。这里有一个很好的代码示例(链接),所以我就不重复了。一个重要的提示 - 调用ctx.list("")只会给你JNDI树的第一层,因此你需要递归调用该方法才能获得EJB名称。提示:EJB通常部署在ejb分支下。

另请参阅:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接