2017-07-01 6 views
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) 

接続SYSOUTがある:server.xmlの

ProxyConnection[PooledConnection[[email protected]]] 

JNDIの設定Tomcatの中の下: -

にHibernateを使用して
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); 
} 

私はまた、接続解除方法を使用しましたが、動作しません。

+0

「接続解除方法も使用しましたが、機能しません」どの結果とつながりが得られますか? – davidxxx

+0

unwrap(OracleConnection.class)中にエラーが発生しました: - 原因:java.sql.SQLException:oracle.jdbc.driver.OracleConnectionのラッパーではありません at org.apache.tomcat.jdbc.pool.ProxyConnection.unwrap(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) (com.sun.proxy)$ Proxy34.unwrap(不明なソース) –

答えて