Java oracle.sql.ArrayDescriptor.createDescriptor中的ClassCastException

Java oracle.sql.ArrayDescriptor.createDescriptor中的ClassCastException,java,oracle,hibernate,tomcat,jdbc,Java,Oracle,Hibernate,Tomcat,Jdbc,在web应用程序中创建ArrayDescriptor时,我得到了一个ClassCastException。 我使用jndi查找从Tomcat DBCP连接池获取连接。 我正在使用ojdbc.jar14驱动程序jar、oracle11g服务器、tomcat7服务器和jdk8。 我没有从池返回的连接中获取oracle.jdbc.OracleConnection对象 下面是错误堆栈跟踪: java.lang.ClassCastException: com.sun.proxy.$Proxy34 cann

在web应用程序中创建
ArrayDescriptor
时,我得到了一个
ClassCastException
。 我使用jndi查找从Tomcat DBCP连接池获取连接。 我正在使用ojdbc.jar14驱动程序jar、oracle11g服务器、tomcat7服务器和jdk8。 我没有从池返回的连接中获取oracle.jdbc.OracleConnection对象

下面是错误堆栈跟踪:

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)
连接sysout为:

ProxyConnection[PooledConnection[oracle.jdbc.driver.T4CConnection@770799c2]]
Tomcat中server.xml中的JNDI配置如下:-

 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"/>    
使用Hibernate获取连接:-

getSession().doWork(new Work() {
            @Override
            public void execute(Connection connection) throws SQLException {

                ArrayDescriptor descNum = 
     ArrayDescriptor.createDescriptor("ARRAY_NUMC", connection );
}

我也使用了连接展开方法,但不起作用

始终尝试使用最新的JDBC驱动程序,即OTN上提供的驱动程序

“我也使用了连接展开方法,但不起作用。”哪一个结果和连接可以帮助您?在展开过程中出现错误(OracleConnection.class):-原因:java.sql.SQLException:不是org.apache.tomcat.jdbc.pool.ProxyConnection.unwrap(ProxyConnection.java:87)上的oracle.jdbc.driver.OracleConnection的包装器org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:119)org.apache.tomcat.jdbc.pool.jdbceptor.invoke(jdbceptor.java:108)org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81)com.sun.Proxy34.unwrap(未知源)我也应该为你工作。检查这个答案-