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。

相关推荐
kexnjdcncnxjs18 小时前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
阿坤带你走近大数据18 小时前
DM达梦数据库的介绍
数据库·mysql·oracle·国产信创
CLX050518 小时前
Redis如何防范脑裂导致的数据丢失_配置min-replicas-to-write强制要求可用从节点数
jvm·数据库·python
毋语天18 小时前
从零搭建 RAG 系统:Milvus 向量数据库 + 大模型完整实战指南
数据库·milvus
环流_18 小时前
Redis ZSet
数据库·redis·缓存
m0_6315298218 小时前
如何在非组件文件中动态读取 Redux Store 中的值以配置主题颜色
jvm·数据库·python
m0_7335654618 小时前
SQL如何统计每日新增用户数_窗口函数与日期维度的结合
jvm·数据库·python
古怪今人18 小时前
etcd分布式键值存储系统 Windows下搭建etcd集群
数据库·分布式·etcd
我科绝伦(Huanhuan Zhou)18 小时前
oracle linux8.8一键部署oracle 11g
数据库·oracle
lolo大魔王18 小时前
Go语言数据库操作之GORM框架从入门到生产实战(完整版)
开发语言·数据库·golang