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。

相关推荐
紫金修道1 小时前
【DeepAgent】概述
开发语言·数据库·python
孟章豪1 小时前
《SQL拼接 vs 参数化,为什么公司禁止拼接SQL?(附真实案例)》
服务器·数据库·sql
荒川之神2 小时前
ORACLE LEVEL函数练习
数据库·oracle
·云扬·2 小时前
【MySQL】实战:用pt-table-sync修复主从数据一致性问题
数据库·mysql·ffmpeg
swIn KWAL2 小时前
【MySQL】环境变量配置
数据库·mysql·adb
shark22222222 小时前
【JOIN】关键字在MySql中的详细使用
数据库·mysql
RATi GORI2 小时前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
坊钰3 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库
onebound_noah3 小时前
【实战教程】如何通过API快速获取淘宝/天猫商品评论数据(含多语言Demo)
大数据·数据库