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。

相关推荐
踏月的造梦星球5 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
韩楚风5 小时前
【参天引擎】事务生命周期 / MVCC / Undo / ACID / 分布式事务 功能域整体解析
数据库·分布式·mysql·架构·cantian
renhongxia16 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
程序员无隅6 小时前
Coding Agent 为什么压缩上下文后还能继续工作?上下文模块设计拆解
java·开发语言·数据库
愿做无知一猿6 小时前
Nacos连接MySQL异常?DataGrip竟成救星
数据库·mysql
G.O.G.O.G6 小时前
LeetCode SQL 从入门到精通(MySQL)06(上)
数据库·sql·mysql·leetcode
研究员子楚7 小时前
GEO行业发展标准体系白皮书V2.0-第10卷 · 全球篇:跨国标准协同与全球品牌语义治理框架
数据库·人工智能·microsoft·架构·geo
Omics Pro8 小时前
深度学习多组学互作:组内+组间
数据库·人工智能·深度学习·mysql·搜索引擎·自然语言处理
残*影9 小时前
如何优雅地保存MySQL数据变更历史?
数据库·mysql
乐观的Terry9 小时前
3、数据库设计与领域实体
java·数据库·spring boot·spring cloud·ai编程