Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 initializeContext()的问题_Java_Eclipse_Jboss - Fatal编程技术网

Java JBOSS initializeContext()的问题

Java JBOSS initializeContext()的问题,java,eclipse,jboss,Java,Eclipse,Jboss,我有一个运行Websphere的项目,我正在迁移到JBoss ESP 6.2。但在JBoss中部署时,它的问题与初始化数据源的上下文有关 我使用以下代码从上下文查找数据源 Context ctx = null; DataSource dataSource = null; Properties p = new Properties(); try { ctx = new InitialContext(); return dataSource = (DataS

我有一个运行Websphere的项目,我正在迁移到JBoss ESP 6.2。但在JBoss中部署时,它的问题与初始化数据源的上下文有关

我使用以下代码从上下文查找数据源

Context ctx = null;
DataSource dataSource = null;
Properties p = new Properties();
    try {

        ctx = new InitialContext();
        return dataSource = (DataSource) ctx.lookup("jdbc/" + dataSourceStr);
    } catch (Exception e) {
        System.out.println(e.toString());
    }
控制台中的异常:

 23:15:56,959 WARNING [javax.enterprise.resource.webcontainer.jsf.config] (ServerService Thread Pool -- 48) javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.ibm.ejs.ns.jndi.CNInitialContextFactory from classloader ModuleClassLoader for Module "deployment.SmartEAR.ear.Smarti.war:main" from Service Module Loader: javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.ibm.ejs.ns.jndi.CNInitialContextFactory from classloader ModuleClassLoader for Module "deployment.SmartEAR.ear.Smarti.war:main" from Service Module Loader
at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) [rt.jar:1.7.0_21]
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) [rt.jar:1.7.0_21]
at javax.naming.InitialContext.init(Unknown Source) [rt.jar:1.7.0_21]
at javax.naming.InitialContext.<init>(Unknown Source) [rt.jar:1.7.0_21]
at com.sun.faces.config.WebConfiguration.processJndiEntries(WebConfiguration.java:683) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at com.sun.faces.config.WebConfiguration.<init>(WebConfiguration.java:134) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at com.sun.faces.config.WebConfiguration.getInstance(WebConfiguration.java:194) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:158) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [rt.jar:1.7.0_21]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [rt.jar:1.7.0_21]
at java.util.concurrent.FutureTask.run(Unknown Source) [rt.jar:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_21]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_21]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_21]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
23:15:56959警告[javax.enterprise.resource.webcontainer.jsf.config](ServerService线程池--48)javax.naming.NamingException:JBAS011843:未能从模块“deployment.SmartEAR.ear.Smarti.war:main”的classloader ModuleClassLoader实例化InitialContextFactory com.ibm.ejs.ns.jndi.CNInitialContextFactory来自服务模块加载器:javax.naming.NamingException:JBAS011843:从服务模块加载器的“deployment.SmartEAR.ear.Smarti.war:main”模块的类加载器ModuleClassLoader实例化InitialContextFactory com.ibm.ejs.ns.jndi.CNInitialContextFactory失败
位于org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
位于javax.naming.spi.NamingManager.getInitialContext(未知源)[rt.jar:1.7.0_21]
在javax.naming.InitialContext.getDefaultInitCtx(未知源)[rt.jar:1.7.0_21]
在javax.naming.InitialContext.init(未知源代码)[rt.jar:1.7.0_21]
在javax.naming.InitialContext.(未知源代码)[rt.jar:1.7.0_21]
在com.sun.faces.config.WebConfiguration.ProcessJndEntries(WebConfiguration.java:683)[jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
在com.sun.faces.config.WebConfiguration.(WebConfiguration.java:134)[jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
在com.sun.faces.config.WebConfiguration.getInstance(WebConfiguration.java:194)[jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
在com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:158)[jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
位于org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339)[jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
在org.apache.catalina.core.StandardContext.start(StandardContext.java:3777)[jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
在org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156)[jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
在org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60)[jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
在org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93)[jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
在java.util.concurrent.Executors$RunnableAdapter.call(未知源)[rt.jar:1.7.0_21]
位于java.util.concurrent.FutureTask$Sync.innerRun(未知源)[rt.jar:1.7.0_21]
在java.util.concurrent.FutureTask.run(未知源)[rt.jar:1.7.0_21]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)[rt.jar:1.7.0_21]
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)[rt.jar:1.7.0_21]
在java.lang.Thread.run(未知源)[rt.jar:1.7.0_21]
位于org.jboss.threads.JBossThread.run(JBossThread.java:122)
有人知道我在JBOSS中缺少了什么吗

实例化InitialContextFactory com.ibm.ejs.ns.jndi.CNInitialContextFactory失败

似乎com.ibm.ejs.ns.jndi.CNInitialContextFactory是Websphere使用的工厂类

可能是这一行使用的JNDI绑定配置

ctx=新的InitialContext()

仍然适用于Websphere,但不适用于JBoss

您应该向JBoss提供正确的配置,即:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces


您是否在JBoss中配置了数据源?请看。是的,我配置了名称java:jboss/datasources/securityDS