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) –