有很多主题,但是...我读到,我有适当的返回参数和参数,这是必要的。怎么了?
<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 {
}
最佳答案
您的应用程序服务器正在实例化调度程序servlet,因此它可能不是 Spring 管理的。
您有一些选择:
@ExceptionHandler
方法添加到 Controller 。 @ExceptionHandler
方法的bean添加到您的spring上下文中,并使用@ControllerAdvice
注释该类,默认情况下会将其应用于所有 Controller 。 关于java - Spring错误处理不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952845/