【问题标题】:How to replace Spring Boot's "Whitelabel Error Page" with a blank page?如何用空白页替换 Spring Boot 的“Whitelabel Error Page”?
【发布时间】:2019-04-04 19:14:32
【问题描述】:

在任何异常情况下,默认情况下 Spring Boot 路由到 /error,这会生成错误 HTML 页面:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Oct 31 16:01:01 CET 2018
There was an unexpected error (type=Not Found, status=404)

问题:如何才能在默认情况下仅针对某个端点显示空白页面?

有一个属性server.error.whitelabel.enabled=false,但它会完全禁用错误处理,以便显示网络服务器的默认错误页面(例如,在 Tomcat 上显示 404 错误页面)。

这不是我想要的。我只想显示一个空白的普通页面。或者可以这么说:一个空的响应体。但是怎么做呢?

因为,对于开发和测试,“Whitelabel 错误页面”很好。但在生产中,我想完全隐藏任何异常细节。

【问题讨论】:

  • 您是在问,您想重定向到您的页面吗?你看过这个stackoverflow.com/questions/25356781/…
  • 不,我只想显示一个空白页面(它是一个 REST api)。
  • 如何使用@ControllerAdvice,如果有异常返回空响应。
  • 那我宁愿使用重定向到一个空白的html页面...
  • 完全满足您的要求。但如果它是休息控制器,我宁愿返回带有异常消息的响应,而不是空页面。

标签: java spring spring-mvc


【解决方案1】:

我认为本教程描述了要走的路: https://www.baeldung.com/spring-boot-custom-error-page

基本上你会做这样的事情:

@Controller
public class MyErrorController implements org.springframework.boot.web.servlet.error.ErrorController {

    @RequestMapping("/error")
    public String handleError() {
        //do something like logging
        return "error";
    }

    @Override
    public String getErrorPath() {
        return "/error";
    }
}

然后您要确保默认行为已关闭。

@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
@SpringBootApplication
public class Application {

    public static void main(String... args) {
        SpringApplication.run(Application.class, args);
    }

}

【讨论】:

    【解决方案2】:

    我刚刚发现这个“Whitelabel Error Page”只显示在请求text/htmlcontent type的网络浏览器中。

    如果仅使用 application/json 从本机客户端访问 Spring REST Web 服务,则错误会自动转换为 JSON。

    如果真的想为网络浏览器显示一个空白页面,可以以某种方式覆盖BasicErrorController#errorHtml() bean 方法。

    【讨论】:

    • 最后我研究了一个不存在的问题。
    • 如何覆盖BasicErrorController.errorHtml()?有什么例子吗?
    猜你喜欢
    • 2019-05-03
    • 2020-01-26
    • 2019-09-10
    • 2020-07-30
    • 2018-07-22
    • 2020-04-15
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多