java.lang.NoClassDefFoundError : org/springframework/web/method/annotation/ExceptionMethodMapping

标签 java spring jsp

我正在研究 Spring mvc 3.0 中带有注释的表单验证。 当我添加<mvc:annotation-driven />时在我的 ***-servlet.xml 中,启动 eclipse 后出现以下错误:

java.lang.NoClassDefFoundError: org/springframework/web/method/annotation/ExceptionMethodMapping
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getDeclaredMethods(Unknown Source)
    at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:159)
    at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:106)
    at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:87)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:257)
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:227)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:623)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:609)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:571)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:623)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:491)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:432)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
    at javax.servlet.GenericServlet.init(GenericServlet.java:242)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.springframework.web.method.annotation.ExceptionMethodMapping
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

这些是我添加的 jar : enter image description here

这是我的 ***-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<mvc:annotation-driven />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix">
            <value>/WEB-INF/pages/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

    <context:component-scan base-package="com.spring3.controller" />

     <bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />    

</beans>

我错过了什么?

最佳答案

做了一些研究,你是对的,ExceptionMethodMapping 类似乎无法在任何 spring-web 3.x(或 4.x)jar 中找到。

但是如果你看一下Spring revisions关于这个类,它似乎已于 2011 年 9 月被删除。因此,您的依赖项之一可能与您的 spring-web 依赖项“不同步”(及时地说)(奇怪的是,所有依赖项似乎都是3.1.4 中除了你的 spring-ws 之外)。我建议您将所有依赖项更新到同一版本,如果您可以选择,请从 3.1 升级到 Spring 3.2。

关于java.lang.NoClassDefFoundError : org/springframework/web/method/annotation/ExceptionMethodMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851126/

相关文章:

java - 如何在 NetBeans 中创建我的项目的 war 文件?

java - 无法在 Linux Jenkins 服务器中生成 allure 报告

java - 仅在使用 java 11 的 Windows 10 上,64 位 dll 的内存访问无效

java - 如果 Activity 位于图书馆项目中,则未找到 Activity 异常

java - setContentsURL 相关问题

spring - 如何使用 Spring Security 为微服务创建自定义安全过滤器

java - 连接未与托管连接关联

java - 在 @CacheEvict 的键中使用非常量属性或字段

javascript - 如何在jsp页面中动态改变标签框的文字?

java - Spring Boot 无法将 string 类型转换为 long 类型