복붙노트

[SPRING] response.getStatus ()를 호출하는 동안 NoSuchMethodError 발생

SPRING

response.getStatus ()를 호출하는 동안 NoSuchMethodError 발생

나는 이것이 어떤 종류의 종속성 문제라고 생각하여 여기에 내 나무가있다.

[INFO] Sikor:BrowserGame:war:1.0-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- org.springframework:spring-context:jar:4.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:4.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:4.1.1.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] |  \- org.springframework:spring-expression:jar:4.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-web:jar:4.1.1.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:4.1.1.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-web:jar:3.2.5.RELEASE:compile
[INFO] |  +- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  \- org.springframework.security:spring-security-core:jar:3.2.5.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-config:jar:3.2.5.RELEASE:compile
[INFO] +- org.springframework.security:spring-security-taglibs:jar:3.2.5.RELEASE:compile
[INFO] |  \- org.springframework.security:spring-security-acl:jar:3.2.5.RELEASE:compile
[INFO] +- org.thymeleaf:thymeleaf-spring4:jar:2.1.3.RELEASE:compile
[INFO] |  \- org.thymeleaf:thymeleaf:jar:2.1.3.RELEASE:compile
[INFO] |     +- ognl:ognl:jar:3.0.6:compile
[INFO] |     \- org.unbescape:unbescape:jar:1.0:compile
[INFO] +- org.thymeleaf.extras:thymeleaf-extras-springsecurity3:jar:2.1.1.RELEASE:compile
[INFO] +- nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:jar:1.2.7:compile
[INFO] +- org.hibernate:hibernate-entitymanager:jar:4.3.5.FINAL:compile
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.1.3.GA:compile
[INFO] |  +- org.jboss.logging:jboss-logging-annotations:jar:1.2.0.Beta1:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:4.3.5.Final:compile
[INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  \- org.jboss:jandex:jar:1.1.0.Final:compile
[INFO] |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] |  +- org.hibernate.common:hibernate-commons-annotations:jar:4.0.4.Final:compile
[INFO] |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |  +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.0.0.Final:compile
[INFO] |  \- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] +- org.hibernate:hibernate-validator:jar:4.3.2.Final:compile
[INFO] |  \- javax.validation:validation-api:jar:1.0.0.GA:compile
[INFO] +- mysql:mysql-connector-java:jar:5.1.32:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-jdbc:jar:4.1.1.RELEASE:compile
[INFO] |  \- org.springframework:spring-tx:jar:4.1.1.RELEASE:compile
[INFO] +- org.springframework.data:spring-data-jpa:jar:1.6.4.RELEASE:compile
[INFO] |  +- org.springframework.data:spring-data-commons:jar:1.8.4.RELEASE:compile
[INFO] |  +- org.aspectj:aspectjrt:jar:1.8.1:compile
[INFO] |  \- org.slf4j:jcl-over-slf4j:jar:1.7.7:runtime
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] +- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
[INFO] |  \- log4j:log4j:jar:1.2.16:compile
[INFO] \- javax.mail:mail:jar:1.4:compile
[INFO]    \- javax.activation:activation:jar:1.1:compile

Spring 4.1.1은 javax.servlet 3.1.0에서 작동하지만 java.lang.NoSuchMethodError : javax.servlet.http.HttpServletResponse.getStatus ()를 호출 할 때 response.getStatus ()를 호출 할 때 ) 내 인터셉터 안에. 누군가가 도울 수 있으면 기뻐할 것입니다. 미리 감사드립니다. 편집 : 추가 된 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/mvc-dispatcher-servlet.xml</param-value>
        </init-param>
        <init-param>
            <param-name>throwExceptionIfNoHandlerFound</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/config/root-context.xml
        </param-value>
    </context-param>

</web-app>

EDIT2 : 다음 변경 :

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

에:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

하지만 나는 여전히 response.getStatus ();

해결법

  1. ==============================

    1.나는 간단한 바람둥이로 내 앱을 돌리고 있었다. 전쟁에 배포하고 Tomcat 7을 사용하고 있는지 확인한 후에 모든 것이 잘됩니다. 모든 해설자 덕분에 올바른 방향으로 나를 지적했습니다. 건배.

    나는 간단한 바람둥이로 내 앱을 돌리고 있었다. 전쟁에 배포하고 Tomcat 7을 사용하고 있는지 확인한 후에 모든 것이 잘됩니다. 모든 해설자 덕분에 올바른 방향으로 나를 지적했습니다. 건배.

    편집 : 마음에 tomcat 7 서블릿 3.1을 지원하지 않으므로 서블릿 3.0을 tomcat 7 또는 servlet 3.1 및 tomcat 8과 함께 사용해야합니다.

  2. ==============================

    2.이 문제는 버전 4.1.1에서 해결되었거나 버전 4.1.1 이상을 사용하거나 DispatcherServlet 빈을 설정 한 경우 publishEvents를 false로 설정하는 문제입니다.

    이 문제는 버전 4.1.1에서 해결되었거나 버전 4.1.1 이상을 사용하거나 DispatcherServlet 빈을 설정 한 경우 publishEvents를 false로 설정하는 문제입니다.

  3. ==============================

    3.나는 똑같은 문제가 있었고 그루비와 관련이 있었다. maven 또는 gradle 의존성을 사용하는 대신 sdk 소스에서 IDE를 사용하여 클래스 경로 (외부 라이브러리)에 그루비를 추가했습니다.

    나는 똑같은 문제가 있었고 그루비와 관련이 있었다. maven 또는 gradle 의존성을 사용하는 대신 sdk 소스에서 IDE를 사용하여 클래스 경로 (외부 라이브러리)에 그루비를 추가했습니다.

    groovy의 의존성과 함께 제공되는 HttpServletResponse에는 getStatus () 메소드가 없다. 마지막으로 classpath에서 제거하고 maven에 추가하면 작동합니다.

  4. from https://stackoverflow.com/questions/27257459/nosuchmethoderror-while-calling-response-getstatus by cc-by-sa and MIT license