如何在Websphere Application Server中使用HSQLDB作为数据源?

时间:2011-05-20 06:43:26

标签: jdbc websphere hsqldb

我尝试设置本地开发基础架构,并希望将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错了......

1 个答案:

答案 0 :(得分:2)

在BDCP文档中给出的示例中,org.hsqldb.jdbcDriver类用作驱动程序。 org.hsqldb.jdbc.JDBCDriver仅在HSQLDB 2.x中受支持,但所有版本的HSQLDB都支持另一个类。