2017-06-27 67 views
1

我有應用程序,它具有JSP和HTML頁面HTTP狀態500 - 處理程序處理失敗;嵌套的例外是java.lang.NoSuchMethodError:

@Controller 
public class LoginController { 
    @RequestMapping(value = "/welcome", method = RequestMethod.GET) 
    public String welcome() { 
     System.out.println("==============21========="); 
     return "welcome"; 
    } 

    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String redirect() { 
     System.out.println("==========1======"); 
     return "redirect:/LoginPage.html"; 
    } 
} 

當頁面返回的HTML頁面我得到

HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getHeader(Ljava/lang/String;)Ljava/lang/String; 

但是當它重定向到/歡迎沒有這樣的錯誤發生

完整的日誌

type Exception report 

消息處理程序處理失敗;嵌套異常是java.lang.NoSuchMethodError:javax.servlet.http.HttpServletResponse.getHeader(Ljava/lang/String;)Ljava/lang/String;

描述服務器遇到阻止其完成此請求一個內部錯誤。

例外

org.springframework.web.util.NestedServletException:處理程序處理失敗;嵌套異常是java.lang.NoSuchMethodError:javax.servlet.http.HttpServletResponse.getHeader(Ljava /郎/字符串;)Ljava /郎/字符串; org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1303) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977) org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:893) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet。 http.HttpServlet.service(HttpServlet.java:617) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) root導致

java.lang.NoSuchMethodError:javax.servlet.http.HttpServletResponse.getHeader(Ljava /郎/字符串;)Ljava /郎/字符串; org.springframework.web.context.request.ServletWebRequest.checkNotModified(ServletWebRequest.java:187) org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:240) org.springframework.web.servlet .mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893 ) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service( HttpServlet.java:617) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) note注意根本原因的完整堆棧跟蹤在Apache Tomcat/6.0.48日誌。

的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>org.test</groupId> 

    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 

    <url>http://maven.apache.org</url> 
    <dependencies> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.4.1</version> 
     </dependency> 
     <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 

     <!-- Apache Commons DBCP --> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <!-- Spring ORM --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <!-- AspectJ --> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${org.aspectj-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.6</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/jstl/jstl --> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
    </dependencies> 
    <build> 


     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>${jdk.version}</source> 
        <target>${jdk.version}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
     </plugins> 

    </build> 
    <properties> 
     <spring.version>4.2.1.RELEASE</spring.version> 
     <security.version>4.0.3.RELEASE</security.version> 
     <jdk.version>1.8</jdk.version> 
     <hibernate.version>4.3.5.Final</hibernate.version> 
     <org.aspectj-version>1.7.4</org.aspectj-version> 
    </properties> 
</project> 

請讓我知道我在哪裏失敗。

回答

1

HttpServletResponse.getHeader是servlet 3.0規範中的一種方法。我猜測你的運行時環境是不兼容的。嘗試添加到你的POM。

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.1.0</version> 
    <scope>provided</scope> 
</dependency> 

如果這不起作用,請嘗試調整您使用IDE設置的任何運行時。你是否明確告訴它在任何特定的服務器上運行?確保它與servlet 3.0兼容。因此,如果使用Tomcat爲例,請確保它至少是Tomcat 7.

+1

謝謝,我之前使用的是Apache 6.0,現在我切換到了JDK 8.0和Apache 8.0。 – Ganesh

相關問題