繁体   English   中英

Spring @ControllerAdvice异常处理程序返回404错误而不是视图

[英]Spring @ControllerAdvice exception handler returning 404 error instead of view

我正在尝试创建一个可以使用springs控制器建议注释处理所有异常的控制器。

下面是我为此创建的类。

@EnableWebMvc
@ControllerAdvice
public class GlobalDefaultExceptionHandler {


private static final Logger LOGGER = Logger.getLogger(GlobalDefaultExceptionHandler.class);

@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
    LOGGER.debug("Handling Exception!");
    return new ModelAndView(new CustomError("<Error Message>"));
}
}

当引发任何未处理的异常时,将调用方法defaultErrorHandler,但它似乎向浏览器返回404错误,而不是返回视图CustomError。 有人知道为什么会这样吗?

CustomError类在下面

public class CustomError {

private String errorMessage;

public CustomError(String errorMessage) {
    this.errorMessage = errorMessage;
}

public String getErrorMessage() {
    return errorMessage;
}

public void setErrorMessage(String errorMessage) {
    this.errorMessage = errorMessage;
}

}

谢谢。

似乎您使用了错误的ModelAndView,您使用的类似乎是org.springframework.web.portlet.ModelAndView包含构造函数ModelAndView(java.lang.Object)

您应该使用的org.springframework.web.servlet.ModelAndView类没有接受Object的构造函数。

相应地更改导入和代码,就可以了

我认为,存在运行时异常,无法通过以下方式处理
@ExceptionHandler(value = Exception.class)

请同时发布您的控制器方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM