我是EJB 3.1领域的新手,并试图通过JBoss Application Server 7.1获得一些基础知识。JBoss 7.1中的InitialContext.lookup()参数
目前我被困在一个非常基本的问题。当服务器上的bean想要使用另一个bean时,我需要使用InitialContext.lookup()方法。如果我查看文献,我发现如下呼叫:
TheBean = (<Interface>) new InitialContext().lookup("<NameOfTheBean>/local");
但是这个调用不适用于我。每次我得到一个错误这样的:
javax.ejb.EJBException: javax.naming.NameNotFoundException
后的寻找一个解决方案小时,我发现它使用另一种呼叫,像这样的代码示例:
TheBean = (<Interface>) new InitialContext().lookup("ejb:/<Package>//<NameOfTheBean>!<Package>.<Interface>");
那么这个解决方案适用于我,但问题是为什么?有人知道为什么第一次调用产生异常,而第二次调用正常吗?
非常感谢!
你真的需要一个JNDI查找吗? “@ EJB”是不是也适用? –