因maven jar依赖问题导致的异常:java.lang.VerifyError: Cannot inherit from final class

      第一次遇到maven项目因为jar依赖问题而产生这个异常,记录一下。

      最近因项目中需要通过https+ip的方式发送请求调用外部服务,需要信任所有的SSL签名,于是用org.apache.httpcomponents实现了一个公共方法,然后实现了该调用,具体的实现方式见我另一篇博客,通过HttpClient以post方式发送https/http请求,请求及返回参数格式为json和xml两种方式,解决https加ip直接访问的ssl签名认证问题​​​​。https://blog.csdn.net/m0_38106299/article/details/96601483

       因为是maven项目,我当时jar依赖放到了我自己的工程中,提交代码后,组长让我将依赖放到父工程的依赖里面,于是就把依赖移过去了。然后启动,发现之前调通的服务也不行了,一调用就报错,如图:因maven jar依赖问题导致的异常:java.lang.VerifyError: Cannot inherit from final class
 

        引用的maven依赖如下:
 

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.5</version>
    </dependency>

        网上查阅各种资料,有相关的报错,也有说是依赖冲突导致问题,ide也安装了Maven Helper,但是还是没有解决我的问题。最后尝试移动当前依赖的位置,将其在pom.xml文件中的位置往前提,重新编译、调用,竟然成功了,问题解决。
        其实我还是不明白为何前移位置就解决了我的问题,我猜想可能是我需要的方法的具体实现在前面的某个依赖(公司内部自己封装了很多jar)里面已经包含,但是方法实现本身比较落后,调用时又调到了它这个依赖里面,并没有调到org.apache.httpcomponents中的方法,因此报错。不管怎样,先记录下来这个解决方法吧。

 

          码字不易,转载请注明出处!