gpt4 book ai didi

java - oracle.sql.ArrayDescriptor.createDescriptor 中的 ClassCastException

转载 作者:行者123 更新时间:2023-11-28 23:20:09 28 4
gpt4 key购买 nike

我在 Web 应用程序中创建 ArrayDescriptor 时收到 ClassCastException。我正在使用 jndi 查找从 Tomcat DBCP 连接池获取连接。我正在使用 ojdbc.jar 14 驱动程序 jar、Oracle 11g 服务器、Tomcat 7 服务器和 JDK 8。我没有从池返回的连接中获取 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)

连接系统输出是:

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 驱动程序,即 12.2.0.1 JDBC driver在 OTN 上可用。

关于java - oracle.sql.ArrayDescriptor.createDescriptor 中的 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44864750/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com