我是靠谱客的博主 开朗康乃馨,最近开发中收集的这篇文章主要介绍Oracle数据库blob类型更新失败处理过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

声明:本次问题是项目升级后,造成的测试环境blob数据类型更新失败

1、问题现象

在执行更新数据库blob字段类型时,首先是本地出现问题:Tomcat执行到更新blob字段代码后直接中断,debug跟踪时也直接中断debug,控制台不输出任何错误。

2、问题发现

根据问题的现象,初步判断是API的问题,更新BOLB字段使用oracle.sql.BLOB的setBinaryStream()方法,出问题的也是调用该该方法是出的,首先oracle.sql.BLOB是继承自java.sql.BLOB,java.sql.BLOB中只有setBinaryStream()方法的接口,没有实现,查看项目使用的oracle.jar(实际上是ojdbc.jar的重构版,老项目了),通过反编译发现oracle.sql.BLOB中没有去实现setBinaryStream()方法,只是继承了接口,故调用方法不报错,到执行代码时没有具体实现,故代码莫名的中断。

3、解决问题

本地将oracle.jar更换成ojdbc-6.0.jar,代码执行正常,能顺利更新BOLB字段。

然而我以为问题得到了解决,实际上还有更深的坑在前方等着你去跳》》》》》

当我将更换后的jar包更新到svn时,然而并没有什么用,测试环境任然报:blob类型更新失败,,,

通过认真思考,初步怀疑是不是测试环境根本没有使用已提交的jar包,而是jboos自己配置了数据库驱动jar包(测试环境使用Jboss,而我从来没有使用过),提出这种猜想后,但是作为开发,没有测试环境服务器访问权限,无奈发现问题而不能去确定,,,痛苦莫名。

后来将猜想反馈给开发组组长,组长通过翻阅历史开发文档,然后到测试环境查看配置,确定Jboss确实是自己配置ojdbc,然后测试环境只配置了个ojdbc-5.0.jar。且各种配置月当年开发文档相差甚远,我就郁闷了,当年开发时测试环境就没测过嘛?

后通过相关配置后,启动项目,终于OK了,

总结:前人的坑,后人来填!!!

项目介绍:项目是很早期的项目,之前使用的weblogic,jdk使用1.4版本,后升级为使用Jboss,使用jdk1.6留下的坑。

 

最后

以上就是开朗康乃馨为你收集整理的Oracle数据库blob类型更新失败处理过程的全部内容,希望文章能够帮你解决Oracle数据库blob类型更新失败处理过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部