簡體   English   中英

如何用空白頁替換 Spring Boot 的“白標錯誤頁”?

[英]How to replace Spring Boot's "Whitelabel Error Page" with a blank page?

在任何異常情況下,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 錯誤頁面)。

那不是我想要的。 我只想顯示一個空白的普通頁面。 或者可以這么說:一個空的響應體。 但是如何?

因為,對於開發和測試,“白標錯誤頁面”很好。 但在生產中,我想完全隱藏任何異常細節。

我認為本教程描述了要走的路: 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);
    }

}

我剛剛發現這個“白標錯誤頁面”僅顯示在請求text/html content type的網絡瀏覽器中。

如果僅使用application/json從本機客戶端訪問 Spring REST Web 服務,則錯誤會自動轉換為 JSON。

如果你真的想為 Web 瀏覽器顯示一個空白頁面,你可以以某種方式覆蓋BasicErrorController#errorHtml() bean 方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM