2013-03-10 125 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下。

參見: