java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy

问题回顾:

启动项目时,遇到如下错误:

二月 25, 2021 8:38:35 上午 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet user threw exception
java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)

解决过程:

当时遇到此问题时,就是百度,然后发现网上统一的说法是 TrustStrategy 类所依赖的 httpclient-x.x.x.jar 和 httpcore-x.x.x.jar 太低,调整到高版本就可以了,

但是我发现项目的 pom.xml 文件中没有 httpclient-x.x.x.jar 配置,然后就懵了,不知道下一步该如何做,最后又是一顿百度,发现一种方法,

在项目的 pom.xml 文件下,打开 cmd 命令窗口,运行 mvn dependency:tree -Dverbose 命令,然后查看 httpclient-x.x.x.jar 的依赖关系;

mvn dependency:tree -Dverbose

查看项目依赖的详细信息,此命令会直接输出依赖信息至控制台,可以运行如下命令,把依赖信息写入文件,然后再去查找:

mvn dependency:tree -Dverbose > tree.txt

然后查看 tree.txt 依赖关系时,发现了如下问题:

[WARNING] The POM for x.x:x.x.x:jar:1.1.0 is missing, no dependency information available

然后又是一顿百度,在网上看到把jar包安装到Maven的本地仓库的命令,如下:

mvn install:install-file -Dfile=D:\x.x.x-1.1.0.jar -DgroupId=x.x -DartifactId=x.x.x -Dversion=1.1.0 -Dpackaging=jar

我的系统是 window10 系统,所以一开始用的 PowerShell ,发现一直报错,安装不成功,然后换成了 cmd,直接就成功,谨记千万不要用 PowerShell

然后再次执行 mvn dependency:tree -Dverbose > tree.txt 命令,查看 tree.txt 文件,发现上述的警告日志已经消失,

但是项目还是报错,最后只能问下公司的大神,他只说了一句话,把 httpclient-x.x.x.jar 在 pom.xml 增加一下,然后重新启动项目就OK了,

最后添加的版本是 httpclient-4.5.1.jar

总结:

虽然本次自己未成功解决问题,甚至还有点笑话,但是从此次问题中,也可以发现自己的很多不足,以及查找问题的方向,以后还有很多要学习的地方。

1、首先确认pom.xml文件中是否包含httpclient.jar

2、包含则判断版本是否过低

3、不包含则再pom.xml添加httpclient依赖

1 <dependency>
2     <groupId>org.apache.httpcomponents</groupId>
3     <artifactId>httpclient</artifactId>
4     <version>4.5.1</version>
5 </dependency>

 

posted @ 2021-02-25 09:52  菜鸟辗迟  阅读(1738)  评论(0编辑  收藏  举报