不同功能jar,同包名同类名冲突解决
原因
项目中需要用到httpClient和tika-app相关jar,在使用httpClient远程调用的时候发现有冲突并且没有使用maven等其他包管理工具。
java.lang.NoSuchFieldError: INSTANCE at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:146)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:964)
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:56)
SSLConnectionSocketFactory这个类调用的有问题,由于包名和类名相同,没有调用httpClient里的,而是调用tika-app里的。
解决
1、百度结果是httpClient的jar版本冲突,但是项目中只有一个版本,这是不符合的。但是这种情况是会有。
2、把httpClient相关的jar包删除,然后在idea 中(随便创建一个类或者在其他类的方法中) new SSLConnectionSocketFactory() ,点进去定位当前类在哪个jar里。然后定位到tika-app这个jar。
3、tika-app里的org.apache.http这个包,项目中没有用到,果断删掉。
删除方法 :
7z d tika-app-1.12.jar org/apache/http
7z是一种压缩和解压工具。
4、还有一种方法是让httpClient包在tika-app之前,这样的话
class在加载的时候先加载前面的,后面的就忽略掉了。(并没有试成功,我不知道如何让httpClient在tika-app之前加载,忽略后面)
推荐阅读:苹果7p有什么颜色
排行
今日要闻
- 强大动力只是基本!BMW 335i E93欧系「性能爆改」
- 和信贷旗下小贷公司不再经营互联网小贷业务 公司回应:已提交新的金融牌照申请
- 国务院:中央与地方保持增值税“五五分享”比例稳定
- CIIS 2019 专题论坛之五丨智能机器人创新及工业化应用论坛
- 聚焦 | 听说你也要去盛泽纺博会?这份亮点前瞻请收好(附日程安排)
- 电子科技大学“牵手”成都温江区打造千亿级“三医+人工智能”产业高地
- 揭秘“50岁“的海信为何走上“逆生长”轨道
- 小米有品上架智能新风防霾口罩:主动送风 续航7小时
- 让任何应用都能做Android启动器 如电子相册、电子菜单、监视器等
- 全球应援 众志成城 广汽菲克捐赠100万元物资助力抗“疫”