java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB

这个问题是因为weblogic把 blob类型封装了,BLOB类型转换时报错,三个解决思路

1 :取消weblogic 封装,在服务,数据源,连接池,高级  中有个 包装数据类型 (英文版本可能不同),可以把勾选去掉,

    去掉后,可能还会报错  oracle_sql_BLOB cannot cast to oracle_sql_BLOB类型,是因为,本地有 ojdbc14.jar 这个包,而        weblogic没有,需要上传。

2 :(推荐) 避免BLOB类型封装,例如

        原来代码  :

                    Object obj = 需要转换接受的值;  

                    BLOB   blob=(BLOB)obj;

                    InputStream is=blob.getBinaryStream();     

      新代码  :

                   Object obj = 需要转换接受的值;  

                    Class clazz=obj.getClass();

                   Method method=clazz.getMethod("getBinaaryStream",new Class[]{});

                    InputStream is =(InputStream)method.invoke(obj,new Object[]{});

        这样写既能避开类型强制转换,也抛开了对oracle驱动jar包的依赖。

3 :  另外还有个特殊的方法,把weblogic  BLOB 所在jar包,放到自己项目中,BLOB转换时,引用  weblogic.jdbc.wrapper.Blob  ,也能避免这个问题,但是不同环境就需要更换不同的jar包,不方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值