JBoss中遇到JNDI问题

我的一个试验程序抛出的异常是:Could not dereference object

如下是我的jndi查找部分:

Hashtable hs = new Hashtable();
hs.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
hs.put("java.naming.provider.url","jnp://localhost:1099");
hs.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

Context context = new InitialContext(hs);
Object ref = context.lookup("java:/comp/env/ejb/Fibo");
其中配置文件中的JNDI部分为:

ejb/Fibo
ejb/tutorial/Fibo

因为刚学JBoss和J2EE,所以搞不清楚原因。
请各位大侠帮帮忙,帮我分析一下出错原因。谢谢!!!

should use the following statement:

Context context = new InitialContext();
Object ref = context.lookup("java:/comp/env/ejb/Fibo");


你的那个方法我也试过了,还是不行,报同样的错。

java:/comp/env/ejb/Fibo 这个名字仅仅用于EJB的方法中.
如果在其他地方用,会出问题!

打开你的jboss.xml配置文件,注意其中有一段

<session>
<ejb-name>MyEJB</ejb-name>
<jndi-name>MyEJBBean</jndi-name>
<local-jndi-name>MyEJBLocal</local-jndi-name>

</session>

用MyEJBBean那个名字。

如果还不行,试试看用new InitialContext();别忘了写一个jndi.properties文件放在你的classpath中。


context.lookup("MyEJBBean");