原因
项目中需要用到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之前加载,忽略后面)
推荐阅读:黄河IT
频道推荐
-
“哈利波特”坐拥九千万英镑却被当成乞丐,原因
《哈利波特》作为全世界闻名的魔幻小说和电影,拥有着数之不尽的粉丝。J·K罗琳创造出一个充满瑰丽想象的魔法世界,让所有的粉丝为之激动,而《哈利波特》的电影每一部都...
2020-03-11 -
热播剧常客周璞讨喜却不红,《安家》《完美关系
最近在热播电视剧《安家》、《完美关系》以及前段时间张若昀主演的谍战剧《惊蛰》中,都能看到同一位演员分别饰演配角或者客串,无论戏的多少,角色的好坏,他给人的印象是...
2020-03-11