【发布时间】:2009-11-05 01:09:51
【问题描述】:
我们在使用 Websphere Application Server 数据源时遇到了一个奇怪的问题。
环境:
- Websphere 应用服务器 (6.1)
- Linux
- Liferay 门户 (5.2)
- 甲骨文 9i
- 休眠 3.0
我们在引用ODBC14.jar的应用服务器中部署了数据源
数据源的休眠配置:
<property name="connection.datasource">jdbc/appDB</property>
<property name="jndi.class">com.ibm.websphere.naming.WsnInitialContextFactory</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.autocommit">false</property>
我们得到以下异常:
引起:java.sql.SQLException: DSRA8101E: DataSource 类不能 用作单阶段:ClassCastException: oracle.jdbc.pool.OracleConnectionPoolDataSource 不兼容 javax.sql.ConnectionPoolDataSource 在 com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1375) 在 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:462) 在 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:418) 在 org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) 在 org.hibernate.jdbc.ConnectionManager.openConnection
我们尝试了以下解决方法 才知道 classes12.jar 在 WEB-INF/lib 中 哪个有 ORACLE 驱动程序,可能导致与 Shared/apps/lib ODBC14.jar 的类加载冲突
因此从 Web 应用程序库中删除 classes12.jar 并重新部署应用程序并重新启动,但再次出现相同的错误。关于如何解决这个问题的任何想法?
【问题讨论】:
标签: database oracle hibernate jdbc websphere-6.1