我正在使用wildfly10。 这是我的java代码。
private Hashtable mEnv = new Hashtable();
InitialContext e = new InitialContext(mEnv);
mEnv 的值作为流量。
mEnv = {
java.naming.provider.url=localhost:8080,
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory,
java.naming.security.authentication=simple,
java.naming.security.principal=fc,
java.naming.security.credentials=1234
} 当我运行这个命令时,出现这样的错误。
javax.naming.NamingException: WFLYNAM0027: Failed instantiate InitialContextFactory org.jnp.interfaces.NamingContextFactory from classloader ModuleClassLoader for Module "deployment.cppro.war:main" from Service Module Loader [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory from [Module "deployment.cppro.war:main" from Service Module Loader]]
java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory from [Module "deployment.cppro.war:main" from Service Module Loader]
WFLYNAM0027: Failed instantiate InitialContextFactory org.jnp.interfaces.NamingContextFactory from classloader ModuleClassLoader for Module "deployment.cppro.war:main" from Service Module Loader
null
null
请帮助我。 谢谢。
JNP 是 JBoss AS5 的旧命名协议。您必须使用 WildFly 10 的新 JNDI 属性。请查看 https://docs.jboss.org/author/display/WFLY/JNDI+Reference (取决于您首先需要 InitialContext 的原因)
对于那些面临此问题并正在使用模块的人,请考虑在服务器启动时将与 jndi.dns 或 jndi.url 相关的模块添加到 JAVA_OPTS
--add-exports jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED