当前位置:   article > 正文

java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy 错误解决办法

truststrategy

前天,在调第三方SDK开发的时候,报了一个错误为java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy,下面来说下产生这个的原因和解决办法:

原因:TrustStrategy这个类找不到,经查看这个TrustStrategy位于org.apache.http.ssl.TrustStrategy包底下,属于httpcore-4.4.jar包底下,或者更高版本底下,而4.4以下的版本并没有这个类,所以产生这个错误的原因就是项目底下引用了低版本的httpcore的jar包,而这个httpcore的jar包又是跟httpclient的jar包相关联的,所以httpclient的jar包也要用较高版本。

解决办法:由于我的是Maven项目,所以全局搜索引用了httpcore的jar包,即搜索httpcore,然后选择后缀名为xml的文件名,后面搜索出来一看有些模块果真引用了较低版本的httpcore和httpclient的jar包,pom.xml打包文件引用打代码如下:

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.3.3</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

此时就必须把这段代码改为如下所示,较高版本的相关jar包,但前提是你私服底下有这个jar包,或者本地资源库有这个jar包:

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.1</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

后面,改完后再重新一试,还是报这个错误,原来httpcore的jar包和httpclient的jar包是有关联的,而pom.xml有些只有依赖了httpclient,但是在Maven依赖库底下还是有httpcore的jar包,还是低版本的,所以还是全局搜httpclient,把pom.xml底下的关于httpclient的全部改为如下所示的代码,没有httpcore的也要加这个依赖,不然还是会报错,代码如下所示:

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.1</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
… 19 more

然后上述的报错就解决了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/498010
推荐阅读
相关标签
  

闽ICP备14008679号