程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常??

开发过程中遇到Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常?的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常?的解决方法建议,希望对你解决Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常?有所启发或帮助;

感谢@nickdos提供提示。最初引起我麻烦的pom.xml更改被删除,清除工作目录使我重获新生。但是,我最初的问题是由于将jerseyjar包含到我的项目中而引起的冲突。

我的项目使用的是Spring v3.x,但jersey jars包含对Spring 2.5的依赖关系,从而导致冲突。为了解决此问题,我声明了以下一些排除事项:

<dependency>
    <groupID>com.sun.jersey</groupID>
    <artifactID>jersey-server</artifactID>
    <version>${Com.sun.jersey.version}</version>
</dependency>
<dependency>
    <groupID>com.sun.jersey</groupID>
    <artifactID>jersey-client</artifactID>
    <version>${Com.sun.jersey.version}</version>
</dependency>
<dependency>
    <groupID>com.sun.jersey</groupID>
    <artifactID>jersey-Json</artifactID>
    <version>${Com.sun.jersey.version}</version>
</dependency>
<dependency>
    <groupID>com.sun.jersey.contribs</groupID>
    <artifactID>jersey-spring</artifactID>
    <version>${Com.sun.jersey.version}</version>
    <exclusions>
        <exclusion>
            <groupID>org.springframework</groupID>
            <artifactID>spring</artifactID>
        </exclusion>
        <exclusion>
            <groupID>org.springframework</groupID>
            <artifactID>spring-core</artifactID>
        </exclusion>
        <exclusion>
            <groupID>org.springframework</groupID>
            <artifactID>spring-web</artifactID>
        </exclusion>
        <exclusion>
            <groupID>org.springframework</groupID>
            <artifactID>spring-beans</artifactID>
        </exclusion>
        <exclusion>
            <groupID>org.springframework</groupID>
            <artifactID>spring-context</artifactID>
        </exclusion>
    </exclusions>
</dependency>

@nickdos的评论使我的项目在不包含jersey的情况下恢复了正常运行,并且通过声明了排除项,现在我既支持Spring MVC也支持jersey REST,而没有我之前报告的load()异常。

谢谢大家!

解决方法

尽管这个项目为我工作了一段时间,但是当我尝试在tomcat中部署应用程序上下文时,我却遇到了一个异常:

Servlet /testapp threw load() exception
java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V
    at org.springframework.core.convert.support.DefaultConversionservice.addScalarConverters(DefaultConversionservice.java:62)

根据我的阅读,如果应用程序中正在编译多个版本的Spring,则可能会发生这种情况。但是,我已经完全清除了本地依赖关系存储库,以确认在构建路径中只有我想要的版本。我的依赖关系如下:

<properties>
    <java-version>1.6</java-version>
    <org.springframework.version>3.1.0.RELEASE</org.springframework.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporTing.outputEncoding>UTF-8</project.reporTing.outputEncoding>
  </properties>

  <dependencies>
    <!-- CGLIB,only required and used for @Configuration usage -->
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>2.2.2</version>
    </dependency>
    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <!-- @Inject -->
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.4</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.4</version>
    </dependency>

    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.8</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework.version}</version>
        <optional>false</optional>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
  </dependencies>

我在Eclipse项目中没有编译器错误,并且它构建完美,没有警告或错误。但是,tomcat标记我的单个测试servlet不可用,当我拖尾日志时,上面的stacktrace是我唯一的提示。

任何人都可以提供的任何帮助将不胜感激。我对Spring和Spring MVC的经验很少,所以我希望这只是一个新手问题,已经完全让我摆脱了。

大佬总结

以上是大佬教程为你收集整理的Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常?全部内容,希望文章能够帮你解决Spring MVC-为什么在部署上下文时出现NoSuchMethodError异常?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: