2014-05-09 48 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