Spring 引导错误控制器的模糊处理程序错误

Ambiguous handler error for Spring Boot Error controller

我遇到这个问题已经有一段时间了,但我似乎找不到出现这个不明确错误的原因。

这是我遇到的错误:

Sep 25 21:23:27 ip-172-31-29-87 web: java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://172.31.29.87/error': {public org.springframework.web.servlet.ModelAndView com.sample.controller.WebsiteController.error404() throws java.lang.Exception, public org.springframework.http.ResponseEntity org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)}

这是我的 http 配置:

.and().exceptionHandling().accessDeniedPage("/AccessDenied").

这是我的 /AccessDenied 控制器:

@RequestMapping(value = "/AccessDenied")
public ModelAndView accessDenied() throws Exception {
    ModelAndView model = new ModelAndView("accessDenied");
    
    return model;
}

真的希望你能帮助我。谢谢。

Spring 找不到您的 end-point 用于处理错误。我认为您应该为 @RequestMapping 指定 Http 方法。此外, 可能对使用有用。

更新 另外,我发现 here 你可以在 accessDeniedPage() 方法中指定 html 页面。例如,您可以创建 error.htmlerror.jsp 并将其添加到您的代码中 .and().exceptionHandling().accessDeniedPage("/error.jsp")。在这种情况下,您不再需要在控制器中处理此请求。