javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interf
aces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: o
rg.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at Client_TestPortal.main(Client_TestPortal.java:54)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFac
tory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
... 5 more
答案 0 :(得分:10)
该例外说明InitialContext
应用程序初始化Client_TestPortal
失败。原因是它无法加载类org.jnp.interfaces.NamingContextFactory
(我认为)是您平台的默认Java命名提供程序。
您的应用类路径似乎缺少必需的JAR文件。根据{{3}},它可能是以下之一:
[LOCAL] jbossall-client.jar
[LOCAL] jbossjmx-ant.jar
[MAVEN2] jnpserver-3.2.3.jar
[MAVEN2] jbossall-client-3.2.1.jar
[MAVEN2] jbossall-client-3.2.3.jar
[MAVEN2] jbossjmx-ant-3.2.3.jar
[MAVEN2] jnp-client-3.2.1.jar
[MAVEN2] jnp-client-4.0.2.jar
......或类似的东西。上述JAR中哪一个(如果有的话)最合适很难说。
答案 1 :(得分:1)
您没有提供足够的信息,例如您正在使用的环境,应用服务器等。
任何方式它都像JNDI相关的JAR lloks不在类路径上。如果它已经到位但仍然无法正常工作,那么您可能错过了正确的上下文信息,因此将JNDI信息传递给InitialContext的构造函数。
答案 2 :(得分:0)
我有同样的问题,但我找到了解决方法。您所要做的就是将jbossall-client.jar库添加到客户端项目中,并完成!!!您可以在客户端文件夹中找到该文件。 例如jboss-6.1.0.Final_GPT \ client 我使用的是Jboss 6.1.0 您也可以从此链接获得帮助 https://community.oracle.com/thread/1157701?start=0
希望它有所帮助。