【发布时间】:2015-11-11 19:42:34
【问题描述】:
我们正在使用 Spring Batch,它会在其某些表中插入一些数据作为 CLOB 对象。我们有 oracle db 并使用 apache commons dbcp 连接池。但是当我们运行我们的工作时,它会抛出如下异常。这个问题的根本原因是什么?是 apache commons 连接池的问题吗?
Caused by: java.lang.ClassCastException: org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.CLOB.createTemporary(CLOB.java:979)
at oracle.sql.CLOB.createTemporary(CLOB.java:939)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.prepareLob(OracleLobHandler.java:580)
at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.createLob(OracleLobHandler.java:527)
... 66 more
【问题讨论】:
-
这篇文章可能对你有所帮助community.oracle.com/thread/281238
-
我确实查看了这篇文章,但问题是我不想更改使用 apache commons dbcp 在 spring 批处理表中插入数据的 spring batch 框架库。
标签: spring-batch apache-commons-dbcp