0
在Web应用程序中创建ArrayDescriptor
时,我得到ClassCastException
。 我使用jndi查找从Tomcat DBCP连接池获取连接。 我正在使用ojdbc.jar 14驱动程序jar,Oracle 11g服务器,Tomcat 7服务器和JDK 8. 我没有从池中返回的连接中获取oracle.jdbc.OracleConnection对象。oracle.sql.ArrayDescriptor.createDescriptor中的ClassCastException
下面是错误堆栈跟踪:
java.lang.ClassCastException: com.sun.proxy.$Proxy34 cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:149)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:115)
连接系统输出是:在server.xml中
ProxyConnection[PooledConnection[[email protected]]]
JNDI配置在下面的Tomcat: -
Resource
name="jdbc/my_db"
auth="Container"``
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
initialSize="5"
maxActive="5"
maxIdle="2"
minIdle="1"
maxTotal="10"
maxWaitMillis="10000"
timeBetweenEvictionRunsMillis="34000"
minEvictableIdleTimeMillis="55000"
validationQuery="SELECT 1 FROM DUAL"
validationInterval="34000"
testOnBorrow="true"
removeAbandoned="true"
removeAbandonedTimeout="55"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
username="aaaaaaa"
password="bbbbbbbbbb"
connectionProperties="SetBigStringTryClob=true"
accessToUnderlyingConnectionAllowed="true"/>
使用休眠获得连接: -
getSession().doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
ArrayDescriptor descNum =
ArrayDescriptor.createDescriptor("ARRAY_NUMC", connection);
}
我也用连接解包方法,但不起作用。
“我也使用了连接解包方法,但不起作用。”哪个结果和联系能够帮助你? – davidxxx
在解包期间(OracleConnection.class)出现错误: - 引起:java.sql.SQLException:不是org.apache.tomcat.jdbc.pool.ProxyConnection.unwrap处的oracle.jdbc.driver.OracleConnection 的包装(ProxyConnection .java:87) at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:119) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108) 位于org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81) at com.sun.proxy。$ Proxy34.unwrap(Unknown Source) –