20180403_调bug_大地保险_jar包冲突
一、异常现象
他们程序在本地通过java形式直接跑起来的时候,是正常的。
但是测试服务器上,程序跑到一半就不继续往下走了,而且,也不报错,日志里面没有任何信息。
二、异常解决
1.核心思想
抽丝剥茧,层层逼近。缩小bug出现的范围。
2.异常解决过程
2.1 反编译jar包
使用jd-gui反编译jar包(A),复制反编译后的class文件里的内容
2.2 修改java文件
在eclipse中新建一个工程,新建一个java类,类名和class文件名称一致,将class文件的内容粘贴进来
然后再修改java文件的内容。这里主要是增加一些打印语句
2.3 eclipse打jar包
通过eclipse将2.2中的工程打成一个jar包(B),用解压工具(如好压)解压
再将原本的jar包(A),用解压缩工具解压得到文件夹C。
将修改后class文件替换掉文件夹C中的class文件
2.4 命令行打jar包
从命令行进入到文件夹C,执行打包命令:
jar -cvf bbb.jar * //将文件夹C中的所有文件打包进bbb.jar
2.5 替换jar
将修改后的jar包替换掉原工程中的jar包。
2.6 得到结果
反复执行以上操作,发现最终出现问题的地方是:
MongoClientURI uri = new MongoClientURI(this.mongoUri, new MongoClientOptions.Builder().connectionsPerHost(connectionsPerHost).serverSelectionTimeout(serverSelectionTimeout));
程序执行到这里就不继续往下执行了,然后可以发现 MongoClientURI 这个类是 mongoDB的。那么可能是mongoDB出问题了。
是什么问题呢?为什么本地是正常的,但是测试服务器上就出异常了呢?这两个地方mongoDB 有什么不同吗?
然后去测试服务器上看看,发现测试服务器上mongoDB的驱动有两个。
那么是不是因为jar包冲突导致的呢?删掉一个试试,发现程序正常了
三、参考资料
20180403_调bug_大地保险_jar包冲突的更多相关文章
- java 包冲突解决方法
1.诊断包冲突 java.lang.NoSuchMethodError: org.apache.commons.io.output.DeferredFileOutputStream.<init& ...
- IDEAL葵花宝典:java代码开发规范插件 (maven helper)解决maven 包冲突的问题
小编说到: 在我们日常开发当中常常我们会遇到JAR包冲突.找来找去还找不到很是烦人.那么所谓的JAR包冲突是指的什么那?JAR包冲突就是-引入的同一个JAR包却有好几个版本. 例如: 项目中引用了两个 ...
- 万恶的jar包冲突
搭了个spring+struts2+mybatis的项目架子, 好久不用myEclipse和tomcat了,生疏了好多. 建议还是去百度一些框架整合的博客,直接使用博客里面给的jar包列表里的jar包 ...
- cxf spring restful 问题解决(jar包冲突)
SEVERE: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error ...
- 为什么项目的jar包会和tomcat的jar包冲突?
为什么项目的jar包会和tomcat的jar包冲突? 碰到这个问题,猜测tomcat启动时会将自己的lib和项目的lib在逻辑上归并为一个大的lib,但是并没有做版本区分以及去重,这样相同的包可能就有 ...
- hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)
1.HDFS + WEB 项目 报java.lang.VerifyError... 异常 抛异常: Exception in thread "main" java.lang.Ver ...
- RHEL5.8使用yum安装应用时包冲突的处理
RHEL5.8使用yum安装应用时包冲突的处理办法记录,总体思路是如果发现包冲突的情形,那么就把冲突的包给删除掉,然后再重新使用yum安装即可. 冲突示例: Transaction Check Err ...
- Maven类包冲突终极解决方案
本文转自:http://ian.wang/106.htm 举例A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过 ...
- weblogic与axis2 jar包冲突
1.org.springframework.web.util.NestedServletException: Handler processing failed; nested exception i ...
随机推荐
- NPOI 导入 导出
using NPOI.XSSF.UserModel; using System.IO; 导入 /// <summary> /// Excel转换DataTable /// </s ...
- 返回泛型集合的SqlDBHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Entity; ...
- STL之map、set灵活使用
1.LA 5908/UVA1517 Tracking RFIDs 题意:给出s个传感器的位置,以及其感应范围.如果某个方向上有墙,则该方向上感应距离减1.现在有w个墙,给出p个物品的位置,问其能被几个 ...
- jQuery中的部分方法
1.empty() – jQuery 文档操作 从被选元素移除所有内容,包括所有文本和子节点. 用法:$(selector).empty(); 其中,selector可以是"#id" ...
- $用python处理Excel文档(2)——用xlsxwriter模块写xls/xlsx文档
Refer:<python自动化运维:技术与最佳实践> 更多用法参考xlsxwriter官方文档:http://xlsxwriter.readthedocs.io/ 本文主要总结一下如何使 ...
- Mybatis一对多/多对多查询时只查出了一条数据
问题描述: 如果三表(包括了关系表)级联查询,主表和明细表的主键都是id的话,明细表的多条数据只能查询出来第一条/最后一条数据. 三个表,权限表(Permission),权限组表(Permission ...
- 写python中的装饰器
python中的装饰器主要用于在已有函数实现功能前附加需要输出的信息,下面将用实例展示我如何写装饰器. 首先分别尝试写装饰器装饰一个无参函数和一个有参函数(被装饰函数仅输出,无返回值情况下) def ...
- mongodb简介和特性
1.mongodb是基于文档的(BSON,类似json的键值对来存储),不是基于表格,易于水平扩展,将内部相关的数据放在一起能提高数据库的操作性能.如果你想新建一个新的文档类型,不用事先告诉数据库关于 ...
- 【Flask】Sqlalchemy join
### join:1. join分为left join(左外连接)和right join(右外连接)以及内连接(等值连接).2. 参考的网页:http://www.jb51.net/article/1 ...
- 前端常用js脚本
常用js整理 //获取Url中的参数值 function getQueryString(name) { var reg = new RegExp("(^|&)" + nam ...