gpt4 book ai didi

java - 处理 "No mapping found for HTTP request in DispatcherServlet"情况

转载 作者:行者123 更新时间:2023-12-01 11:05:10 25 4
gpt4 key购买 nike

当我的调度程序 servlet 没有为请求的 url 定义映射时,我一直在尝试全局处理这种情况,但尚未找到解决方案。

这是我处理全局异常的类:

@ControllerAdvice
public class GlobalExceptionHandlerController {

@Value("${exception.view.default}")
private String defaultExceptionView;

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

@ExceptionHandler(Exception.class)
public ModelAndView notFoundException(Exception e) {
LOGGER.error("Error ocurred: " + e.getMessage());
return new ModelAndView(defaultExceptionView)
.addObject("code", "404")
.addObject("name", "Page Not Found")
.addObject("message", "We couldn't find requested resource");
}
}

我在 @ExceptionHandler 中尝试了许多不同的类,但没有任何效果对我有用。该处理程序工作正常 - 当我从其中一个 Controller 抛出异常并且该异常未在本地处理时,它会直接转到该全局处理程序。

有没有办法通过@ControllerAdvice执行这种异常处理?

最佳答案

是的,使用 setThrowExceptionIfNoHandlerFound 配置您的 DispatcherServlet其中设置

[...] whether to throw a NoHandlerFoundException when no Handler was found for this request. This exception can then be caught with a HandlerExceptionResolver or an @ExceptionHandler controller method.

并按照它所说的去做,即。为 NoHandlerFoundException 异常定义一个 @ExceptionHandler

关于java - 处理 "No mapping found for HTTP request in DispatcherServlet"情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33041594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com