Java oracle.sql.ArrayDescriptor.createDescriptor中的ClassCastException
在web应用程序中创建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
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(未知源)我也应该为你工作。检查这个答案-