spring - java.lang.NoSuchMethodError: org.springframework.web.context.request.ServletRequestAttributes.<init> -
after migrating spring 3 spring 4, following error when request page:
java.lang.nosuchmethoderror: org.springframework.web.context.request.servletrequestattributes.<init>(ljavax/servlet/http/httpservletrequest;ljavax/servlet/http/httpservletresponse;)v i double checked , method not seem exist in spring 4. wonder if messed xsd versions in web.xml or dispatcher-servlet.xml
here web.xml:
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="webapp_id" version="3.0"> <display-name>archetype created web application</display-name> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/dispatcher-servlet.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.contextloaderlistener </listener-class> </listener> </web-app> dispatcher-servlet.xml:
<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" xmlns:security="http://www.springframework.org/schema/security" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> <context:component-scan base-package="org.javacms.controllers" /> <mvc:resources mapping="/templates/**" location="/templates/" /> <!-- added avoid exceptions --> <bean class="org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter" /> <bean class="org.springframework.web.servlet.mvc.annotation.defaultannotationhandlermapping" /> <!-- jstl view resolver --> <bean class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="prefix"> <value>/templates/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> and pom.xml:
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion> <groupid>javacms</groupid> <artifactid>javacms</artifactid> <packaging>war</packaging> <version>0.0.1-snapshot</version> <name>javacms maven webapp</name> <url>http://maven.apache.org</url> <properties> <spring.version>4.1.7.release</spring.version> <spring-security.version>4.0.1.release</spring-security.version> </properties> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.12</version> </dependency> <!-- spring --> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>jstl</artifactid> <version>1.2</version> </dependency> <!-- spring security --> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-core</artifactid> <version>${spring-security.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-taglibs</artifactid> <version>${spring-security.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-config</artifactid> <version>${spring-security.version}</version> </dependency> <!-- mysql connector --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.36</version> </dependency> <!-- hibernate --> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>4.3.10.final</version> </dependency> </dependencies> <build> <finalname>webapp</finalname> </build> </project> am missing dependency or have wrong versions?
this error java.lang.nosuchmethoderror: org.springframework.web.context.request.servletrequestattributes.<init>(ljavax/servlet/http/httpservletrequest;ljavax/servlet/http/httpservletresponse;)v means using latest version of spring , trying invoke older version servletrequestattributes spring 3.
have in javadoc:
spring 3 - servletrequestattributes
spring 4 - servletrequestattributes
my guess spring 4 uses older version of jar contains servletrequestattributes. check libraries , see if there conflict.
try add pom.xml:
<build> <finalname>webapp</finalname> <plugins> <plugin> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
Comments
Post a Comment