javax.naming.NoInitialContextException:无法实例化类:

我正在尝试实现在tutorialpoint中描述的简单EJB应用程序,我使用JBoss 5.1和eclipse作为IDE,我创建了项目作为EJB 3.但是我收到以下错误

javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) at javax.naming.InitialContext.init(InitialContext.java:242) at javax.naming.InitialContext.(InitialContext.java:216) at com.tutorialspoint.test.EJBTester.(EJBTester.java:42) at com.tutorialspoint.test.EJBTester.main(EJBTester.java:51) Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:274) at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:72) at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:61) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671) ... 5 more java.lang.NullPointerException at com.tutorialspoint.test.EJBTester.testStatelessEjb(EJBTester.java:65) at com.tutorialspoint.test.EJBTester.main(EJBTester.java:53) null 

谁可以指导我这个?

您需要将类org.jnp.interfaces.NamingContextFactory的jar添加到客户端代码中的类路径中。

你可以在这里得到它。 如果出现版本不匹配错误,请确保为jboss 5.x获取相应的jar。