2013-03-10 74 views
5

我在我的应用程序中使用EJB 3.1。如何以编程方式查找EJB的JNDI查找名称?

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

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

回答

4

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

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

参见: