概述
声明:本次问题是项目升级后,造成的测试环境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类型更新失败处理过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复