ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB问题

问题:

在应用使用 oracle.sql.BLOB的情况下: BLOB blob = (BLOB) rs.getBlob("img"); 数据源配置时未将ojdbc.jar放在TongWeb的lib目录下,而且在数据源配置时指定了存放在其它目录的ojdbc.jar。

若应用lib下无ojdbc.jar,则报错找不到类:

bash 复制代码
java.lang.ClassNotFoundException: oracle.sql.BLOB
	at com.tongweb.tomee.catalina.ThanosTomEEWebappClassLoader$1.loadClass(ThanosTomEEWebappClassLoader.java:98)
	at com.tongweb.common.LoadClassCache.cacheLoadClass(LoadClassCache.java:63)
	at com.tongweb.tomee.catalina.ThanosTomEEWebappClassLoader.loadClass(ThanosTomEEWebappClassLoader.java:80)

若应用lib下有ojdbc.jar,则报错类转化异常:

bash 复制代码
java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB]
	at com.tong.Test.testDB(Test.java:81)]
	at com.tong.Test.doGet(Test.java:45)]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)]

解决办法:

通过在数据源配置时指定的ojdbc.jar路径应用是加载不到的,若应用中也含有ojdbc.jar,因为是在两个不同的类加载路径,所以会有类转化异常。

解决办法是把ojdbc.jar放在TongWeb的lib下数据源与应用共用同一类路径上的ojdbc.jar。

相关推荐
笃行35010 小时前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行35010 小时前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行35010 小时前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
SelectDB1 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶1 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵1 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils1 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
Databend2 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
ClouGence4 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle