解决EJB异常

Exception in thread "main" javax.naming.NameNotFoundException: StatefulEjbBean not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.li.ejb.StatefulEjbClient.main(StatefulEjbClient.java:10)
刚入门,谢谢。
我在JBoss安装目录下如何找到发布的名字,那个/remote加了
Properties env = new Properties();
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming.client");
// 设置jnp地址
env.setProperty(Context.PROVIDER_URL, "jnp://localhost:2009");

Context enc = new InitialContext(env);

//InitialContext context=new InitialContext();
FirstEJB fir=(FirstEJB)enc.lookup("FirstEJBBean/remote");

第1个回答  2009-01-14
应该是查找StatefulEjbBean 的JNDI名称的时候没有找到,你看一下发布的EJB的SessionBean是不是这个,可以在jboss控制台页面上的Global JNDI Namespace里查到发布的JNDI名称,我估计你可能是少加了个/remote
context.lookup("StatefulEjbBean/remote");本回答被提问者采纳
第2个回答  2009-01-14
1、JNDI名称要写全,要和配置文件的<jndi-name>标签内的内容完全一致
2、检查发布服务端的端口号是否和客户端监听的端口号一致
第3个回答  2009-01-14
有点像“权限”的原因,
第4个回答  2009-01-14
学习中。。。。。。。。
相似回答