Spring Boot启动后浏览器访问出现404白标错误求助
错误现象
访问应用时出现白标错误页面:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sat Feb 10 04:41:11 IST 2024 There was an unexpected error (type=Not Found, status=404).
排查与解决步骤
1. 清理重复依赖
你的pom.xml中重复引入了spring-boot-starter-web依赖,可能引发依赖冲突,先删除其中一个,修改后的依赖配置如下:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
2. 确保Controller类正确配置
- 检查
com.course.courseapplication.controller包下是否存在Controller类,且类上添加了@RestController(返回JSON)或@Controller(返回视图)注解,同时方法上有@GetMapping/@PostMapping等路径映射注解。示例代码:
package com.course.courseapplication.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CourseController { @GetMapping("/") public String home() { return "Hello Spring Boot!"; } }
- 确认Controller类的包路径与主类
scanBasePackages指定的完全一致,无拼写错误。
3. 调整组件扫描范围(可选)
如果项目中还有Service、Repository等组件在com.course.courseapplication根包下,建议将主类的扫描范围调整为根包,确保所有Spring组件都能被扫描到:
@SpringBootApplication(scanBasePackages = { "com.course.courseapplication" }) public class CourseapplicationApplication { public static void main(String[] args) { SpringApplication.run(CourseapplicationApplication.class, args); } }
若主类本身就在com.course.courseapplication包下,可直接省略scanBasePackages参数,@SpringBootApplication默认会扫描主类所在包及其子包。
4. 验证启动日志
启动应用后,查看控制台日志,若出现类似Mapped "{[/],methods=[GET]}" onto public java.lang.String com.course.courseapplication.controller.CourseController.home()的日志,说明接口映射成功;若未出现该日志,需重新检查Controller的包路径和注解配置。
内容的提问来源于stack exchange,提问作者rey02

