maven依赖httpclient的使用错误及解决方案:

项目需求:

上传文件到阿里OSS

问题总述:

由于所使用的maven依赖的版本低和版本冲突所造成的问题

问题描述:

错误一:java.lang.ClassNotFoundException:org.apache.http.conn.ssl.DefaultHostnameVerifier

百度搜索类:DefaultHostnameVerifier
参考url1https://www.cnblogs.com/SongG-blogs/p/9549634.html
参考url2https://blog.****.net/qq_38990795/article/details/103063157
参考url3https://blog.****.net/loongshawn/article/details/50831890

错误原因:低版本的httpclient(4.3.2)中没有org.apache.http.conn.ssl.DefaultHostnameVerifier,所以报错。
maven依赖httpclient的使用错误及解决方案:解决方案:升级maven依赖httpclient为高一点的版本4.4.1,当然也可以排除依赖
maven依赖httpclient的使用错误及解决方案:修改后:
maven依赖httpclient的使用错误及解决方案:注意:jdk1.8中也有这个类,httpclient中也有,而此处需要的是httpclient中的
maven依赖httpclient的使用错误及解决方案:

错误二:java.lang.NoSuchMethodError:org.apache.http.impl.conn.CPool.setValidateAfterInactivity(I)V

错误描述:将httpclient的版本由4.3.2升级为高版本的4.4.1之后,又抛出了这个新的异常:java.lang.NoSuchMethodError:org.apache.http.impl.conn.CPool.setValidateAfterInactivity(I)V

百度搜索异常信息
java.lang.NoSuchMethodError:org.apache.http.impl.conn.CPool.setValidateAfterInactivity(I)V
参考urlhttps://blog.****.net/Cheng120636/article/details/80688277

项目中所引用的maven依赖如下:
maven依赖httpclient的使用错误及解决方案:ctrl + 鼠标左键点4.4.1,查看httpclient4.4.1所引用的依赖如下图所示:
maven依赖httpclient的使用错误及解决方案:项目中显示引用了httpcore4.3.1,然后在httpclient4.4.1中又隐示引用了httpcore4.4.1,版本冲突。
解决方案:将显示引用的httpcore4.3.1给注释掉即可,如下图:
maven依赖httpclient的使用错误及解决方案: