java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolableConnection cannot be cast to oracle.jdbc.OracleConnection

In my application, I am continously getting this execption.

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) 

Here is my spring bean definition for lobHandler.

<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"/>

I having, ojdbc6-12.1.0.1 jar in tomcat lib folder as well in my classpath. I tried few google solutions, but nothing seems working.

Any suggesstions

Upvotes: 0

Views: 2674

Answers (1)

Jukka
Jukka

Reputation: 4663

You're using c3po native JDBC extractor where you should probably be using DBCP native jdbc extractor.

Upvotes: 1

Related Questions