您的位置: 池州在线 > 教育 > 正文

不同功能jar,同包名同类名冲突解决

2020-03-30 16:34:19来源:阅读:-

原因

项目中需要用到httpClienttika-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、百度结果是httpClientjar版本冲突,但是项目中只有一个版本,这是不符合的。但是这种情况是会有。
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在加载的时候先加载前面的,后面的就忽略掉了。(并没有试成功,我不知道如何让httpClienttika-app之前加载,忽略后面)

推荐阅读:苹果x和苹果xr区别

滚动推荐
34:19不同功能jar,同包名同类名冲突解
原因项目中需要用到httpClient和tika-app相关jar,在[详细]
47:51用上TicPods2 Pro甚至想
自从苹果公司推出AirPods以来,真无线耳机真正在智能手机领域开始普[详细]
49:25看小米公司如何管理市场信息来获取顾
看小米公司如何管理市场信息来获取顾客洞察关注:萌面笨博士,关注新媒体营[详细]
10:50这些让你意想不到的明星,竟然也是编
乔布斯说,人人都应该学习编程。乍一看,编程好像是个很专业的事情。那些编[详细]
32:58Huawei Beam功能体验与感
Huawei Beam功能体验与感受很早就听说华为手机有一种操作步骤最[详细]
55:10app域名值不值得投资?
错失COM和CN域名的黄金发展时期,投资域名大概有十年历史,其间有赚有[详细]
17:26浙江:科技互联网企业在行动|斑马会
面对疫情,36氪浙江也将贡献出自己的力量,在春节期间推出专题策划“抗击[详细]