weblogic环境下weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

在weblogic环境中遇到将weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB转换为oracle.sql.CLOB时出现ClassCastException。解决方案包括修改weblogic服务器配置或使用Java反射机制进行类型转换。详细步骤及代码实现文中详述。

最近在做一个小功能时,从数据库中获取一个CLOB类型的字段,需要在java代码中进行一些处理,但是在取出来Object强制类型转换为 CLOB类型对象时,出现报错:java.lang.ClassCastException: weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB cannot be cast to oracle.sql.CLOB  

报错代码如下:

import oracle.sql.CLOB;
....
CLOB c_info = (CLOB)rsMap.get("info");
....

首先根据报错进行分析:

ClassCasrException,类型转换的问题;

weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB,从数据库中获取到的类型为此类型;

oracle.sql.CLOB,强制类型转换的目标类型;

分析可得,这个报错是说,从数据库获取的这个数据类型,不可以转换为我们想要的数据类型。

解决思路:

我先尝试找了weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB这个类,结果是没有在代码的各种引用中找到相关的类,这一步的意义是,可以确认从数据库中取到该类型的操作不是开发人员引用包或做了类型转换导致的;

第二步,根据包名,weblogic是使用的容器,那么考虑是否是因为容器的配置导致的类型问题。经过查资料和对比观察,找到weblogic服务器界面中的一个配置,截图如下:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值