av无码专区精品无码|亚洲日韩久久无码自慰|91人国产精品亚洲播放|一本清日本在线视频精品|亚洲精品第一国产综合精品|琪琪精品免费一区二区三区|国精产品蘑菇一区一区有限|国产成人精品无码一区二区老年人

不同功能jar,同包名同類(lèi)名沖突解決

2020-03-25 06:35:14  閱讀:-  來(lái)源:

原因

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

解決

1、百度結(jié)果是httpClientjar版本沖突,但是項(xiàng)目中只有一個(gè)版本,這是不符合的。但是這種情況是會(huì)有。
2、把httpClient相關(guān)的jar包刪除,然后在idea 中(隨便創(chuàng)建一個(gè)類(lèi)或者在其他類(lèi)的方法中) new SSLConnectionSocketFactory() ,點(diǎn)進(jìn)去定位當(dāng)前類(lèi)在哪個(gè)jar里。然后定位到tika-app這個(gè)jar。
3、tika-app里的org.apache.http這個(gè)包,項(xiàng)目中沒(méi)有用到,果斷刪掉。
刪除方法 :

7z d tika-app-1.12.jar org/apache/http

7z是一種壓縮和解壓工具。

4、還有一種方法是讓httpClient包在tika-app之前,這樣的話

class在加載的時(shí)候先加載前面的,后面的就忽略掉了。(并沒(méi)有試成功,我不知道如何讓httpClienttika-app之前加載,忽略后面)