您当前的位置 :尚美资讯网 > 美容 >  内容正文
投稿

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

尚美资讯网 2020-03-30 18:18:03 来源: 阅读:-

原因

项目中需要用到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哪个好

免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎!

网站简介 - 联系我们 - 营销服务 - 老版地图 - 版权声明 - 网站地图
Copyright.2002-2019 尚美资讯网 版权所有 本网拒绝一切非法行为 欢迎监督举报 如有错误信息 欢迎纠正