2014-05-09 79 views
1

無法連接到數據庫。指定的JDBC驅動程序:org.h2.jdbc - 初始化失敗

我還將最新的h2-1.4.178.jar添加到類路徑,創建表,通過工具檢查連接。

它的工作,但Tomcat說:「HTTP狀態500 - com.vaadin.server.ServiceException:java.lang.RuntimeException:指定的JDBC驅動程序:org.h2.jdbc - 初始化失敗。」

我該怎麼稱呼它?我使用Eclipse。這是我的SRC(我用Vaadin):

try { 
     JDBCConnectionPool pool = new SimpleJDBCConnectionPool(
       "org.h2.jdbc", 
       "jdbc:h2:~test", "SA", "", 2, 5); 
     screen.polulate("TEST", pool); 
    } catch (SQLException e) { 
     throw new RuntimeException(e); 
    } 

,我發現我的問題(https://superuser.com/questions/290999/where-can-i-find-h2-jdbc-driver),但我無法理解這是什麼意思:

然後調用

Class.forName("org.h2.Driver"); 

回答

1

您鏈接的答案與您的問題無關。問題可能是(受過教育的猜測)是SimpleJDBCConnectionPool的構造函數的第一個參數需要JDBC驅動程序名稱,並且"org.h2.jdbc"不是JDBC驅動程序名稱(它是"org.h2.Driver")。

現代JDBC驅動程序不再需要使用Class.forName("org.h2.Driver");。對於使用Class.forName("org.h2.Driver");的舊驅動程序(不包含文件META-INF/services/java.sql.Driver及其驅動程序實現)將加載驅動程序,然後驅動程序將自行註冊爲java.sql.DriverManager,因此它可用於創建連接。

+0

謝謝馬克,問題是,我沒有複製* .jars在WEB-INF/lib – user321626