java.lang.ClassCastException : org. apache.tomcat.dbcp.dbcp.PoolableConnection 无法转换为 oracle.jdbc.OracleConnection

标签 java spring oracle tomcat jdbc

在我的应用程序中,我不断收到此异常。

org.springframework.dao.InvalidDataAccessApiUsageException: OracleLobCreator needs to work on [oracle.jdbc.OracleConnection], not on 

[org.apache.tomcat.dbcp.dbcp.PoolableConnection]: specify a corresponding NativeJdbcExtractor; nested exception is java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolableConnection cannot be cast to oracle.jdbc.OracleConnection
    at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.createLob(OracleLobHandler.java:547) ~[spring-jdbc-4.1.4.RELEASE.jar:4.1.4.RELEASE]
    at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.setClobAsString(OracleLobHandler.java:447) 

这是我为 lobHandler 定义的 spring bean。

<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"
      p:nativeJdbcExtractor-ref="nativeJdbcExtractor"/>

<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor"/>


<bean id="jobRepository"
      class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"
      p:lobHandler-ref="oracleLobHandler" p:dataSource-ref="dataSource"
      p:databaseType="oracle" p:tablePrefix="BATCH_"
      p:transactionManager-ref="transactionManager"
      p:isolationLevelForCreate="ISOLATION_READ_COMMITTED"/>

我在 tomcat lib 文件夹以及我的类路径中都有 ojdbc6-12.1.0.1 jar。我尝试了一些谷歌解决方案,但似乎没有任何效果。

任何建议

最佳答案

您正在使用 c3po native JDBC 提取器,而您可能应该使用 DBCP native jdbc 提取器。

关于java.lang.ClassCastException : org. apache.tomcat.dbcp.dbcp.PoolableConnection 无法转换为 oracle.jdbc.OracleConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36114776/

相关文章:

java - 此场景中的异常处理

java - 在 Spring Security 中以编程方式设置登录 URL

oracle - 如何在sql中查找以 '%'开头的名称

java - 在 android jni 中执行 shell 时出现以下错误

java - 获取枚举下变量的值

java - 编写android :button programmatically

java - 使用 Apache POI 更改 Word 文件中的特定行

spring - @Predestroy 何时会在原型(prototype)范围的 bean 上调用?

sql - 防止 Oracle 减去语句删除重复项

sql - Oracle中如何选择一个变量的值?