久久综合给合久久狠狠狠974色|亚洲成熟丰满熟妇高潮xxxxx|国产又黄又黄又大又粗又爽的视频|日韩久久久精品无码一区二区三区|中文字幕无码乱人伦一区二区三区|国产成人无码区免费内射一片色欲|亚洲av无码久久精品一区二区三区

不同功能jar,同包名同類名沖突解決

2020-03-25 06:35:14  閱讀:-  來源:

原因

項目中需要用到httpClienttika-app相關jar,在使用httpClient遠程調(diào)用的時候發(fā)現(xiàn)有沖突并且沒有使用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這個類調(diào)用的有問題,由于包名和類名相同,沒有調(diào)用httpClient里的,而是調(diào)用tika-app里的。

解決

1、百度結果是httpClientjar版本沖突,但是項目中只有一個版本,這是不符合的。但是這種情況是會有。
2、把httpClient相關的jar包刪除,然后在idea 中(隨便創(chuàng)建一個類或者在其他類的方法中) 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之前加載,忽略后面)