Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
当使用JNDI连接到JBoss7中创建的数据源时,eclipse中的javax.naming.NameNotFoundException_Java_Eclipse_Jakarta Ee_Jboss_Jndi - Fatal编程技术网

当使用JNDI连接到JBoss7中创建的数据源时,eclipse中的javax.naming.NameNotFoundException

当使用JNDI连接到JBoss7中创建的数据源时,eclipse中的javax.naming.NameNotFoundException,java,eclipse,jakarta-ee,jboss,jndi,Java,Eclipse,Jakarta Ee,Jboss,Jndi,我是J2EE新手。我正在尝试使用JNDI连接到JBossAS7中创建的数据源 我使用JBoss7作为独立服务器来部署我的项目NewDB.war。 我已经在jboss AS 7中创建了fallowing数据源java:jboss/datasources/oracleDS(这是我的JNDI名称),并成功连接到Oracle数据库 我正在使用oracle数据库存储我的sql表 我在eclipse中收到了一条错误消息。但我在命令行收到了成功的消息。 我在eclipse中创建了动态web项目来执行所有这些任

我是J2EE新手。我正在尝试使用JNDI连接到JBossAS7中创建的数据源

我使用JBoss7作为独立服务器来部署我的项目NewDB.war。 我已经在jboss AS 7中创建了fallowing数据源java:jboss/datasources/oracleDS(这是我的JNDI名称),并成功连接到Oracle数据库

我正在使用oracle数据库存储我的sql表

我在eclipse中收到了一条错误消息。但我在命令行收到了成功的消息。 我在eclipse中创建了动态web项目来执行所有这些任务。我不确定要为我的任务创建哪种类型的项目。如果我错了,请纠正我

如果有人能帮助你摆脱这个错误,那将是很大的帮助

        09:53:18,418 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
    09:53:19,421 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
    09:53:19,495 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
    09:53:22,118 INFO  [org.xnio] XNIO Version 3.0.3.GA
    09:53:22,118 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
    09:53:22,122 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
    09:53:22,137 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
    09:53:22,184 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
    09:53:22,200 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
    09:53:22,215 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
    09:53:22,200 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
    09:53:22,200 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
    09:53:22,200 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
    09:53:22,200 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
    09:53:22,340 INFO  [org.jboss.as.naming] (MSC service thread 1-7) JBAS011802: Starting Naming Service
    09:53:22,356 INFO  [org.jboss.as.security] (MSC service thread 1-1) JBAS013100: Current PicketBox version=4.0.7.Final
    09:53:22,403 INFO  [org.jboss.as.connector] (MSC service thread 1-7) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
    09:53:22,465 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default]
    09:53:22,559 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
    09:53:23,394 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-8) Starting Coyote HTTP/1.1 on http-localhost-127.0.0.1-8080
    09:53:23,564 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
    09:53:23,642 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-5) JBoss Web Services - Stack CXF Server 4.0.2.GA
    09:53:24,126 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) JBAS015012: Started FileSystemDeploymentService for directory C:\Users\patillat\jboss-as-7.1.1.Final\standalone\deployments
    09:53:24,142 WARN  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015002: Deployment of 'NewDBEAR.ear' requested, but the deployment is not present
    09:53:24,158 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found NewDB.war in deployment directory. To trigger deployment create a file called NewDB.war.dodeploy
    09:53:24,173 INFO  [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on localhost/127.0.0.1:4447
    09:53:24,173 INFO  [org.jboss.as.remoting] (MSC service thread 1-4) JBAS017100: Listening on localhost/127.0.0.1:9999
    09:53:24,361 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of "NewDB.war"
    09:53:25,159 INFO  [org.jboss.web] (MSC service thread 1-7) JBAS018210: Registering web context: /NewDB
    09:53:25,177 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015951: Admin console listening on http://127.0.0.1:9990
    09:53:25,179 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 8275ms - Started 174 of 251 services (76 services are passive or on-demand)
    09:53:25,305 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "NewDB.war"
    09:53:26,815 ERROR [stderr] (http-localhost-127.0.0.1-8080-3) Error getting DS : javax.naming.NameNotFoundException: datasources/oracleDS -- service jboss.naming.context.java.jboss.datasources.oracleDS

    09:53:26,817 ERROR [stderr] (http-localhost-127.0.0.1-8080-3) javax.naming.NameNotFoundException: datasources/oracleDS -- service jboss.naming.context.java.jboss.datasources.oracleDS

    09:53:26,817 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)

    09:53:26,817 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)

    09:53:26,817 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)

    09:53:26,817 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at p1.TestServlet.init(TestServlet.java:37)

    09:53:26,833 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at javax.servlet.GenericServlet.init(GenericServlet.java:242)

    09:53:26,833 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202)

    09:53:26,833 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:952)

    09:53:26,833 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:188)

    09:53:26,833 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)

    09:53:26,833 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)

    09:53:26,849 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)

    09:53:26,849 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

    09:53:26,849 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    09:53:26,849 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)

    09:53:26,849 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)

    09:53:26,864 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)

    09:53:26,864 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)

    09:53:26,864 ERROR [stderr] (http-localhost-127.0.0.1-8080-3)   at java.lang.Thread.run(Unknown Source)

     javax.naming.NameNotFoundException
但我将在命令提示符中获得成功报告作为fallows

16:53:33,981 INFO  [org.jboss.modules] JBoss Modules version 1.1.1.GA
16:53:34,215 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
16:53:34,262 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
16:53:35,452 INFO  [org.xnio] XNIO Version 3.0.3.GA
16:53:35,455 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
16:53:35,486 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
16:53:35,540 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
16:53:35,541 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
16:53:35,582 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
16:53:35,576 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
16:53:35,748 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
16:53:35,739 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
16:53:35,722 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
16:53:35,707 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
16:53:35,690 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
16:53:35,924 INFO  [org.jboss.as.security] (MSC service thread 1-4) JBAS013100: Current PicketBox version=4.0.7.Final
16:53:35,906 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-7) JBAS015400: Bound mail session [java:jboss/mail/Default]
16:53:35,885 INFO  [org.jboss.as.naming] (MSC service thread 1-1) JBAS011802: Starting Naming Service
16:53:35,817 INFO  [org.jboss.as.connector] (MSC service thread 1-8) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
16:53:36,479 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-4) JBoss Web Services - Stack CXF Server 4.0.2.GA
16:53:36,679 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-1) JBAS015012: Started FileSystemDeploymentService for directory C:\jboss\standalone\deployments
16:53:37,242 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-8) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
16:53:38,059 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-5) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080
16:53:38,059 INFO  [org.apache.coyote.ajp.AjpProtocol] (MSC service thread 1-4) Starting Coyote AJP/1.3 on ajp--127.0.0.1-8009
16:53:38,106 INFO  [org.jboss.as.remoting] (MSC service thread 1-6) JBAS017100: Listening on /127.0.0.1:4447
16:53:38,106 INFO  [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on /127.0.0.1:9999
16:53:38,371 INFO  [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.jdbc-driver.ojdbc6_jar (missing) dependents: [service jboss.data-source.java:jboss/datasources/oracleDS]

16:53:38,434 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "NewDB.war"
16:53:38,434 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "ojdbc6.jar"
16:53:39,075 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
16:53:39,075 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-8) JBAS010400: Bound data source [java:jboss/datasources/oracleDS]
16:53:39,184 INFO  [org.jboss.web] (MSC service thread 1-3) JBAS018210: Registering web context: /NewDB
16:53:39,200 INFO  [org.jboss.as] (MSC service thread 1-4) JBAS015951: Admin console listening on http://127.0.0.1:9990
16:53:39,215 INFO  [org.jboss.as] (MSC service thread 1-4) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 5516ms - Started 201 of 281 services (78 services are passive or on-demand)
16:53:39,262 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "ojdbc6.jar"
16:53:39,262 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "NewDB.war"
16:53:39,262 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014776:    Newly corrected services:
      service jboss.jdbc-driver.ojdbc6_jar (no longer required)

16:53:55,446 INFO  [stdout] (http--127.0.0.1-8080-2) **Success getting DS** : class org.jboss.jca.adapters.jdbc.WrapperDataSource
16:57:40,076 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment NewDB.war in 81ms
我在Servlet中编写了休闲代码。。。在月蚀中

package p1;

import java.io.IOException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void init() throws ServletException {
        super.init();
        DataSource ds = null;
        Context ctx = null;
        try {
            String strDSName = "java:jboss/datasources/oracleDS";
            ctx = new InitialContext();
            Context cx = (Context)ctx.lookup("java:jboss");
            ds = (javax.sql.DataSource)cx.lookup("datasources/oracleDS");
            System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
            System.out.println("Success getting DS : " + ds.getClass());
        } catch (Exception e) {
            System.err.println("Error getting DS : " + e);
            e.printStackTrace();
        }

    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}
Fallowing是分别放在WebContent/META-INF和WebContent/web-INF/lib中的context.xml和web.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/JNDI">
    <Resource name="jdbc/oracleDS" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="system" password="Evergren$12" driverClassName="oracle.jdbc.OracleDriver"
               url="jdbc:oracle:thin:@localhost:1521:ORCL" />
</Context>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<resource-ref>
 <description>oracle Datasource example</description>
 <res-ref-name>jdbc/oracleDS</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>

oracle数据源示例
jdbc/oracleDS
javax.sql.DataSource
容器
  • 您的context.xml文件将被忽略,因为这是一个Tomcat配置文件,并且您正在运行JBoss as
  • 您的web.xml格式不正确,我很惊讶它不会导致部署错误——至少可能会被忽略
  • 我相信您的代码可以从命令行运行,因为部署顺序会发生微妙的变化。当您从Eclipse运行时,您的webapp将在您的数据源之前进行初始化,这可能是因为Eclipse提供了明确的部署说明
通常,JBossAS可以通过分析注释或部署描述符来确定正确的部署顺序。然而,你没有一个可用的形式

由于这是一个兼容JavaEE6的服务器,您不需要显式的JNDI查找。请尝试以下操作:

package p1;

import java.io.IOException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Resource(lookup="java:jboss/datasources/oracleDS")
    private DataSource ds;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public TestServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void init() throws ServletException {
        super.init();
        System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
        System.out.println("Success getting DS : " + ds.getClass());

    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

这真的是整个web.xml吗?是的。。我只是在测试连接和获取数据源的成功消息。你的回答很有帮助,我是j2ee和jboss新手,我应该完全删除context.xml吗??我应该使用注释来解决这个问题吗??