Spring Boot 移除 Whitelabel 错误页面

标签 spring spring-boot

我正在尝试删除白标错误页面,所以我所做的是为“/error”创建了一个 Controller 映射,

@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 文件,仍然得到同样的错误

最佳答案

您需要将代码更改为以下内容:

@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;
    }
}

您的代码不起作用,因为当您没有指定 ErrorController 的实现时,Spring Boot 会自动将 BasicErrorController 注册为 Spring Bean。

要查看这个事实,只需导航到 ErrorMvcAutoConfiguration.basicErrorController here .

关于Spring Boot 移除 Whitelabel 错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356781/

相关文章:

java - Spring Batch 管理 UI - 覆盖文件上传位置

java - 条件 Spring 安全

spring - Spring 批处理中的 JdbcPagingItemReader 没有给出正确的结果

java - 使用@CacheEvict中的键清除单个端点的缓存

mysql - 如何在java中制作geojson格式

java - 如何使 RestController 具有事务性?

spring - 如何用 Thymeleaf 指定背景图片?

java - 在 Java Web 应用程序中处理无效请求的方法?

java - 在mockito测试用例中使用@Value属性

java - @ServiceActivator如何在Spring Boot中从属性文件读取inputChannel?