我正在尝试删除白标错误页面,所以我所做的是为“/error”创建了一个控制器映射,
@RestController public class IndexController { @RequestMapping(value = "/error") public String error() { return "Error handling"; } }
但现在我收到了这个错误。
Exception in thread "AWT-EventQueue-0" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'basicErrorController' bean method public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletR equest) to {[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'indexController' bean method
不知道我是不是做错了什么。请指教。
编辑:
已添加 error.whitelabel.enabled=false 到 application.properties 文件,仍然出现相同的错误
error.whitelabel.enabled=false
您需要将代码更改为以下内容:
@RestController public class IndexController implements ErrorController{ private static final String PATH = "/error"; @RequestMapping(value = PATH) public String error() { return "Error handling"; } @Override public String getErrorPath() { return PATH; } }
您的代码不起作用,因为BasicErrorController当您没有指定ErrorController.
BasicErrorController
ErrorController
要查看这一事实,只需导航到ErrorMvcAutoConfiguration.basicErrorController 此处。
ErrorMvcAutoConfiguration.basicErrorController