spring boot 搭建测试报错Whitelabel Error Page No message available

本文探讨了在SpringBoot框架下,使用@Controller与@RestController注解的区别。通过一个具体案例,详细解释了当使用不同注解时,应用程序如何响应web请求,以及为何使用@RestController可以避免404错误。

报错内容如下:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Wed Jul 10 17:52:57 CST 2019

There was an unexpected error (type=Not Found, status=404).

No message available

 

头一次使用spring boot就报错,根据网上查找好多方法没有解决掉,最后将拦截类的

@Controller 修改为 @RestController 就不报错了,

 

如果是web访问页面的话需要使用@Controller,而不能使用@RestController

原因:技术知识点不够

### 关于 Spring Boot Whitelabel Error Page 的含义 Spring Boot 提供了一个默认的错误处理机制,当应用程序无法找到匹配的请求路径或者发生异常时,默认会返回一个名为 **Whitelabel Error Page** 的页面[^1]。该页面通常显示如下内容: ``` There was an unexpected error (type=Not Found, status=404). No message available ``` 这个页面的作用是告知开发者当前应用遇到了未定义的行为或错误。它是一个简单的 HTML 页面,旨在帮助开发人员快速定位问题。 #### 原因分析 以下是可能导致 **Whitelabel Error Page** 显示的一些常见原因: 1. 请求的 URL 路径不存在,即控制器中没有对应的 `@RequestMapping` 或其他映射配置。 2. 应用程序启动失败,某些 Bean 初始化过程中抛出了异常。 3. 配置文件中的属性设置不正确,例如端口号冲突或其他环境变量问题。 4. 如果启用了安全框架(如 Spring Security),可能由于权限不足而导致访问受限[^2]。 #### 如何禁用 Whitelabel Error Page? 如果希望自定义错误页面而不是看到默认的 Whitelabel 错误页,可以通过以下方式实现: - 添加全局错误处理器类并覆盖默认行为: ```java package com.example.demo.config; import org.springframework.boot.web.error.ErrorAttributeOptions; import org.springframework.boot.web.servlet.error.DefaultErrorAttributes; import org.springframework.stereotype.Component; import org.springframework.web.context.request.WebRequest; import java.util.Map; @Component public class CustomErrorAttributes extends DefaultErrorAttributes { @Override public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) { Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, options); // 自定义逻辑... return errorAttributes; } } ``` 同时可以创建一个专门用于渲染错误视图的 Controller 来替代默认行为: ```java @Controller @RequestMapping("/error") public class ErrorHandlerController { @GetMapping public String handleError() { // 返回到特定模板页面 return "custom-error-page"; } } ``` 通过上述方法即可完全替换掉原始的 Whitelabel Error Page 并提供更友好的用户体验[^4]。 另外需要注意的是,在生产环境中建议关闭敏感信息暴露功能以提高安全性,具体做法是在 application.properties 文件里加入下面这句配置语句: ```properties server.error.include-message=always server.error.include-stacktrace=never management.endpoints.web.exposure.include=health,info spring.mvc.throw-exception-if-no-handler-found=true spring.resources.add-mappings=false ``` 以上措施能够有效减少潜在风险以及提升系统的健壮性和可维护性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值