Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JBoss EAP 6-创建InitialContext时出错_Java - Fatal编程技术网

Java JBoss EAP 6-创建InitialContext时出错

Java JBoss EAP 6-创建InitialContext时出错,java,Java,我正在尝试使用JBoss EAP 6.3.2上的jnp协议连接JNDI。 我的代码是 Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); p.p

我正在尝试使用JBoss EAP 6.3.2上的jnp协议连接JNDI。 我的代码是

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
        "org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES,
        "org.jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");

InitialContext ctx = new InitialContext(p);
MyBeanHome home = (MyBeanHome) ctx
                .lookup("/MyApp/MyAppModule/MyBean!org.com.SesFacade.MyBeanHome");
但当我试图使用jnp属性创建InitialContext对象时,我遇到了一个异常

javax.naming.NoInitialContextException:无法实例化类: org.jnp.interfaces.NamingContextFactory[根异常为 java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]


没人来回答,最后我找到了解决办法。我们需要使用
remote
协议,而不是
jnp
,如下所示:

    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY,
            "org.jboss.naming.remote.client.InitialContextFactory");
    p.put(Context.URL_PKG_PREFIXES,
            "org.jboss.as.naming.interfaces:org.jboss.ejb.client.naming");
    p.put(Context.PROVIDER_URL, "remote://localhost:4447");
    p.put("jboss.naming.client.ejb.context", true);
    InitialContext ctx = new InitialContext(p);

这篇文章对我很有用: