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

时间:2015-10-02 06:49:28

标签: java eclipse ejb-3.0 jboss5.x

我正在尝试实现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.<init>(InitialContext.java:216)
at com.tutorialspoint.test.EJBTester.<init>(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

任何人都可以指导我吗?

1 个答案:

答案 0 :(得分:0)

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

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