`
Janne
  • 浏览: 42876 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

NoSuchMethodError

阅读更多
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>
这样项目就可以正常启动运行了。
分享到:
评论

相关推荐

    java.lang.NoSuchMethodError异常处理要点.doc

    在Java编程中,`java.lang.NoSuchMethodError`异常是一个运行时异常,通常发生在程序试图执行一个不存在的方法时。这个异常的出现通常意味着编译时和运行时的类版本不匹配,或者是在编译期间存在而运行时不存在的...

    《 从NoSuchMethodError看jvm编译和class加载方式》的测试项目代码

    在Java开发中,`NoSuchMethodError`是一个常见的运行时异常,通常发生在试图调用一个不存在的方法时。这个错误与JVM的类加载机制密切相关。本文将深入探讨`NoSuchMethodError`,并结合“jar-duplicate-test”这个...

    java.lang.NoSuchMethodError异常解决

    在Java编程中,`java.lang.NoSuchMethodError`异常是一个运行时异常,通常发生在尝试执行一个在编译时可用但在运行时不可用的方法时。这个异常表明某个已经加载的类定义了一个方法,但该方法的实际行为无法被找到。...

    系统稳定性——NoSuchMethodError常见原因及解决方法1

    《系统稳定性——NoSuchMethodError常见原因及解决方法》 NoSuchMethodError是Java编程中常见的运行时错误,当应用程序尝试调用一个类的特定方法,但该类已经不再包含该方法的定义时,就会抛出这个错误。这通常发生...

    解决 java.lang.NoSuchMethodError的错误

    解决 java.lang.NoSuchMethodError 的错误 Java.lang.NoSuchMethodError 错误是一种常见的 Java 异常,它发生在 Java 虚拟机 (JVM) 无法找到某个类的特定方法时。这种错误可能是由于项目依赖比较复杂、Java 运行...

    java.lang.NoSuchMethodError: javax/servlet/jsp/PageContext.getELContext()Ljavax/

    NULL 博文链接:https://albert0707.iteye.com/blog/562969

    maven3.6.3资源包

    1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void ()' not found at org.jetbrains.idea.maven.server.embedder....

    解决启动Azkaban报错问题:java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap

    在Java编程中,`NoSuchMethodError` 是一个常见的运行时异常,它表示在类加载时找到了该类,但在该类中却找不到特定方法的定义。这个问题通常发生在不同版本的库之间存在不兼容的情况,即在编译时使用的库版本包含了...

    hibernate3.2+cglib2.2架包

    在Java中,有时我们可能会遇到`java.lang.NoSuchMethodError`,这通常发生在运行时尝试执行一个在编译时存在但在运行时不存在的方法。对于这个问题,CGlib提供了解决方案。CGlib使用ASM库(一个Java字节码操纵和分析...

    xwork-core-2.3.37.jar

    用于解决struts2升级至2.3.37时 出现java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.put(Ljava/lang/异常时,更换的xwork-core-2.3.37.jar

    ETM Springframework 2.x NoSuchMethodError

    NULL 博文链接:https://yangzb.iteye.com/blog/265212

    WEBLOGIC8+AJAX setCharacterEncoding报错

    描述中提到的"NoSuchMethodError setCharacterEncoding(Ljava/lang/String;)V"是一个Java运行时异常,意味着在类装载时尝试调用的方法在该类的Class文件中存在,但在链接阶段找不到。这通常发生在试图执行的方法在...

    Android XmlResourceParser出错解决办法

    Android XmlResourceParser出错解决办法...java.lang.NoSuchMethodError: No interface method i()I in class Landroid/content/res/XmlResourceParser; or its super classes (declaration of 'android.content.res.Xm

    京东jos所需的jar

    描述中提到的“只有open-api-sdk-2.0会报错java.lang.NoSuchMethodError,还得另外的jar包”,这是Java编程中一个常见的运行时异常。`NoSuchMethodError`通常发生在尝试调用的方法在类加载时不存在,这可能是因为...

    Ruby-ActsAsVotable让任何ActiveRecord模型具备投票特性如喜欢不喜欢赞同反对

    Ruby-ActsAsVotable是一个流行的Ruby gem,它允许开发者将投票功能轻松地集成到他们的ActiveRecord模型中。这个库的目的是使用户能够为任何对象(如博客文章、评论或其他社区内容)添加“喜欢”、“不喜欢”、“赞同...

Global site tag (gtag.js) - Google Analytics