2012-02-07 3 views
1

У меня настроен пул соединений JDBC и отображается следующая ошибка, когда я выполняю примерную страницу JSP, пытающуюся использовать соединение.Ошибка загрузки драйвера JDBC в пуле соединений JDBC

Error occurred org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load 
    JDBC driver class 'com.sybase.jdbc3.jdbc.SybDriver' 

Я разместил jconn2.jar как в common/lib и web-inf/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>` 
+0

У вас есть все другие соответствующие JAR-файлы? таких как commons dbcp, коллекции, пул в вашей библиотеке? –

+0

у вас есть полный стек? Он должен содержать корневое исключение. – yair

+0

У меня есть все эти файлы jar в моем общем/lib.Что еще мне нужно 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. –

ответ

2

Драйвер Sybase JDBC имеет разные названия пакетов в разных версиях. Вы пытаетесь загрузить более новую версию com.sybase.jdbc3.jdbc.SybDriver, в то время как ваша банка, скорее всего, содержит старые com.sybase.jdbc2.jdbc.SybDriver.

+0

Последняя вещь. Этот пул работает для jsp/servlets. Будем требовать, чтобы любые изменения для пула jdbc были доступны для обычных классов Java. –

+0

@gautamvegeta Он должен хорошо работать для любого api на основе jdbc. – mrembisz

Смежные вопросы