2015-06-20 133 views
0

有很多話題,但是......我有正確的返回參數和參數,我讀過,這是必要的。哪裏不對?彈簧錯誤處理不起作用

<servlet> 
    <servlet-name>springMvc</servlet-name> 
    <servlet-class>com.vse.uslugi.utilities.web.BaseDispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

import org.springframework.web.bind.annotation.ExceptionHandler; 
import org.springframework.web.bind.annotation.ResponseBody; 
import org.springframework.web.servlet.DispatcherServlet; 

public class BaseDispatcherServlet extends DispatcherServlet { 
@ResponseBody 
@ExceptionHandler(Exception.class) 
public String handleThrowable() { 
    return ErrorService.html("Internal server error"); 
} 

@ResponseBody 
@ExceptionHandler(ResourceNotFoundException.class) 
public String handleResourceNotFoundException() { 
    return ErrorService.html("Page not found"); 
} 
} 
//-------------------- 
import org.springframework.http.HttpStatus; 
import org.springframework.web.bind.annotation.ResponseStatus; 

@ResponseStatus(HttpStatus.NOT_FOUND) 
public class ResourceNotFoundException extends RuntimeException { 
} 

回答

0

調度程序servlet正在由您的應用程序服務器實例化,因此它可能不是由Spring管理的。

有些選項你有:

  1. 添加@ExceptionHandler方法來控制。
  2. 將bean添加到您的spring上下文中,該bean上有@ExceptionHandler方法,並用@ControllerAdvice註釋該類,這將默認應用於所有控制器。