zoukankan      html  css  js  c++  java
  • java.lang.NoSuchMethodError的通用解决思路

      NoSuchMethodError中文意思是没有找到方法,遇到这个错误并不是说依赖的jar包、方法不存在而找不到,这就类似于 ClassNotFoundException错误了,出现ClassNotFoundException错误也不一定是缺少依赖的jar、class,有可能是依赖的冲突,即引用了多次报错Class的jar。

      那么同样道理,NoSuchMethodError出现经常是因为报错的这个方法的类的jar包产生了冲突。

      明白了为什么会出现这个错误后,我们再去解决这个错误。一般情况下,手动引入jar包(即非依赖管理工具),直接remove掉重复的jar包就OK了。

      我们关键说下 Maven项目出现这个问题了怎么解决。

      是时候举个栗子了:

        比如之前做的一个 Spring Boot 项目,做的过程中有个地方需要用到阿里dubbo jar包中的方法,引入依赖

    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.5.3</version>
    </dependency>
      
       之后导致项目无法启动,报错为:
        Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.core.annotation.
            AnnotationAwareOrderComparator.sort(Ljava/util/List;)V
       Ctrl+左键点入 dubbo这个依赖,发现dubbo也需要依赖Spring,而且和我项目中的Spring版本并不一样,所以就产生了冲突,
    解决这个的方法就是让dubbo依赖的Spring不再再添加进项目的依赖,如下:    
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.5.3</version>
    <exclusions>
    <exclusion>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    这样项目就可以正常启动运行了。
     
    
    

      

  • 相关阅读:
    30+简约时尚的Macbook贴花
    20+非常棒的Photoshop卡通设计教程
    20+WordPress手机主题和插件【好收藏推荐】
    75+精美的网格网站设计欣赏
    TopFreeTheme精选免费模板【20130629】
    45个有新意的Photoshop教程和技巧
    30个高质量的旅游网站设计
    55个高质量的Magento主题,助你构建电子商务站点
    一个弹框引起的彻夜加班
    开始跟踪Redis啦,开帖
  • 原文地址:https://www.cnblogs.com/effortn/p/9609959.html
Copyright © 2011-2022 走看看