【问题标题】:javax.naming.NoInitialContextException: Cannot instantiate class:javax.naming.NoInitialContextException:无法实例化类:
【发布时间】:2015-10-02 06:49:28
【问题描述】:

我正在尝试实现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

有人可以指导我吗?

【问题讨论】:

    标签: java eclipse ejb-3.0 jboss5.x


    【解决方案1】:

    您需要在您的客户端代码的类路径中添加一个带有 org.jnp.interfaces.NamingContextFactory 类的 jar。

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

    【讨论】:

    • 它工作正常,我在客户端文件夹中添加了默认的 jbossall-client.jar 然后示例工作
    • 如果我想用 Jboss 7.x 连接同一个客户端,我需要做什么
    • 只要您使用的初始上下文工厂是org.jnp.interfaces.NamingContextFactory,您的代码即使在 jboss 7.x 上也应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2011-08-14
    • 2018-09-05
    • 2020-11-06
    相关资源
    最近更新 更多