Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 JDBC连接池中的JDBC驱动程序加载问题_Java_Jakarta Ee_Jdbc_Connection Pooling - Fatal编程技术网

Java JDBC连接池中的JDBC驱动程序加载问题

Java JDBC连接池中的JDBC驱动程序加载问题,java,jakarta-ee,jdbc,connection-pooling,Java,Jakarta Ee,Jdbc,Connection Pooling,我已经设置了JDBC连接池,当我执行试图使用连接的示例JSP页面时,它显示了以下错误 Error occurred org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.sybase.jdbc3.jdbc.SybDriver' 我已经将jconn2.jar放在common/lib和webinf/lib中。 如何纠正错误 The context.xml <C

我已经设置了JDBC连接池,当我执行试图使用连接的示例JSP页面时,它显示了以下错误

Error occurred org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load 
    JDBC driver class 'com.sybase.jdbc3.jdbc.SybDriver' 
我已经将
jconn2.jar
放在
common/lib
webinf/lib
中。 如何纠正错误

    The context.xml

<Context>
        <Resource name="jdbc/mysybase" auth="Container"
                  type="javax.sql.DataSource" driverClassName="com.sybase.jdbc3.jdbc.SybDriver"
                  url="jdbc:sybase:Tds:H2S33.studtrack.com:2025/student"
                  username="scott" password="tiger" maxActive="20" maxIdle="10"
                  maxWait="-1"/>
    </Context>


    In The web.xml file
    <resource-ref>
     <description>Sybase Datasource example</description>
     <res-ref-name>jdbc/mysybase</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
    </resource-ref>


    And the jsp page

    <%@page import="java.sql.*"%>
    <%@page import="javax.naming.Context"%>
    <%@page import="javax.naming.InitialContext"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.SQLException"%>
    <%@page import="java.sql.ResultSet"%>
    <%@page import="javax.sql.DataSource"%>
    <html>
    <head>
    <title>Obtaining a Connection</title>
    </head>
    <body>

    <%
        Connection conn = null;
        ResultSet result = null;
        Statement stmt = null;
         try {
           Context initContext = new InitialContext();
        Context envContext  = (Context)initContext.lookup("java:/comp/env");
           DataSource ds = (DataSource)envContext.lookup("jdbc/mysybase");
           conn = ds.getConnection();
        if (conn != null) 
        {
            String message = "Got Connection " + conn.toString() + ", ";
            out.write(message);
        }
        else
        {
            out.write("hello no conn obtained");

        }

            stmt = conn.createStatement();
            result = stmt.executeQuery("SELECT * FROM Student");
        while(result.next())
        {
            out.write(result.getString("name"));
        }

         }
         catch (SQLException e) {
             out.write("Error occurred " + e);
          }

    %>

    </body>
    </html>`
context.xml
在web.xml文件中
Sybase数据源示例
jdbc/mysybase
javax.sql.DataSource
容器
和jsp页面
取得联系
`

Sybase JDBC驱动程序在不同版本中具有不同的包命名。您正在尝试加载较新的版本
com.sybase.jdbc3.jdbc.SybDriver
,而您的jar很可能包含较旧的
com.sybase.jdbc2.jdbc.SybDriver

您有所有其他相关的jar文件吗?例如库中的commons dbcp、集合、池?是否有完整的stacktrace?它应该包含根异常。我的common/lib中有所有这些jar文件。我还需要下面提到的aprt吗。servlet-api.jar、naming-resources.jar、naming-factory-dbcp.jar、naming-factory.jar、jtds2.jar、jsp-api.jar、jconn2.jar、jasper-runtime.jar、jasper-compiler-jdt.jar、jasper-compiler.jar、,commons-el.jar.Error Occurse org.apache.tomcat.dbcp.dbcp.SQLNestedException:无法加载JDBC驱动程序类'com.sybase.jdbc3.JDBC.SybDriver'是我执行jsp页面时得到的所有内容。请确保jconn2.jar中有
com.sybase.jdbc3.JDBC.SybDriver
,而不是
com.sybase.jdbc2.JDBC.SybDriver
。最后一件事。这是:池正在为jsp/servlets工作。为了使jdbc池可用于普通java类,我需要做任何更改。