我尝试设置本地开发基础架构,并希望将HSQLDB用作 WAS 6.1 的数据源。我已经知道我必须使用Apache DBCP来获取连接池,但是当我的应用程序试图获得第一个连接时我就卡住了。
我做了什么
在WAS中,我使用类org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS
创建了一个JDBC提供程序,并从类路径输入字段中删除了所有内容。然后我在MYAPPSERVERDIRECTORY/lib/ext
中放了 commons-dbcp.jar , commons-pool.jar 和 hsqldb.jar 。
然后我用该提供程序创建了一个新的数据源。我添加了以下自定义属性:
driver=org.hsqldb.jdbc.JDBCDriver
url=jdbc:hsqldb:file:///C:/mydatabase.db;shutdown=true
user=SA
password=
我的问题
当我运行我的应用程序并建立了与数据库的第一个连接时,我得到以下异常:
---- Begin backtrace for Nested Throwables
java.sql.SQLException: No suitable driverDSRA0010E: SQL-Status = 08001, Fehlercode = 0
at java.sql.DriverManager.getConnection(DriverManager.java:592)
at java.sql.DriverManager.getConnection(DriverManager.java:196)
at org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS.getPooledConnection(DriverAdapterCPDS.java:205)
at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.run(InternalGenericDataStoreHelper.java:918)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java:955)
at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:1437)
at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:1089)
at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:1837)
at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1568)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2338)
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:909)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:599)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:439)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:408)
有关此的任何提示吗?我怀疑我在hsqldb中使用了一个错误的类,或者我的JDBC url错了......
答案 0 :(得分:2)
在BDCP文档中给出的示例中,org.hsqldb.jdbcDriver
类用作驱动程序。 org.hsqldb.jdbc.JDBCDriver
仅在HSQLDB 2.x中受支持,但所有版本的HSQLDB都支持另一个类。