java.lang.ClassNotFoundException:org.jboss.naming.remote.client.InitialContextFactory

时间:2014-07-11 07:01:28

标签: java class jboss wildfly-8

我正在将jboss-4.0.4.GA移动到wildfly-8.1.0.Final。在部署我的EAR时,我遇到了以下错误:

  

2014-07-10 17:09:44,900 ERROR [stderr](默认任务-1)   javax.naming.NamingException:JBAS011843:实例化失败   的InitialContextFactory   来自classloader的org.jboss.naming.remote.client.InitialContextFactory   Module的ModuleClassLoader   来自服务模块的“deployment.wildfly.ear.wildfly-war.war:main”   Loader [根异常是java.lang.ClassNotFoundException:   来自[Module。的org.jboss.naming.remote.client.InitialContextFactory   来自服务模块的“deployment.wildfly.ear.wildfly-war.war:main”   装载机]

我的代码:

Properties appProp = new Properties();
appProp.put(Context.INITIAL_CONTEXT_FACTORY, CGProperties.initial_context_factory);
appProp.put(Context.PROVIDER_URL, CGProperties.provider_url);
appProp.put("java.naming.rmi.security.manager", "yes");
appProp.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
appProp.put("jboss.naming.client.ejb.context","true");
context = new InitialContext(appProp);
//context = new InitialContext();

if(serverName.equalsIgnoreCase("JBOSS")) {
    ds = (javax.sql.DataSource) context.lookup(CGProperties.dsName);
    reportDS=(javax.sql.DataSource) context.lookup(CGProperties.reportdsName);
}

请帮我解决此错误。

1 个答案:

答案 0 :(得分:1)

需要添加jboss-client.jar或包含相应的WildFly模块。

在回答here时, standalone-full.xml 中的以下配置可以解决问题:

    <subsystem xmlns="urn:jboss:domain:ee:4.0"><!-- ee:2.0  in WildFly 8 -->
                <global-modules>
                    <module name="org.jboss.remote-naming"/>
                </global-modules>
...

允许在另一个WildFly服务器上查找远程连接。