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.html
或 error.jsp
并将其添加到您的代码中 .and().exceptionHandling().accessDeniedPage("/error.jsp")
。在这种情况下,您不再需要在控制器中处理此请求。
我遇到这个问题已经有一段时间了,但我似乎找不到出现这个不明确错误的原因。
这是我遇到的错误:
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.html
或 error.jsp
并将其添加到您的代码中 .and().exceptionHandling().accessDeniedPage("/error.jsp")
。在这种情况下,您不再需要在控制器中处理此请求。