Spring Boot无法识别自定义端点,访问返回404白标错误
Spring Boot 接口返回404白标错误排查问题
问题现象
启动Spring Boot应用无报错,VSCode的EndpointMappings插件显示/test/get路由存在,但访问localhost:8080/test/get时始终返回404白标错误页面。
核心代码文件
1. demo/Service.java
package com.clubmgmt.clubmgmtstudentservice; @SpringBootApplication public class Service { public static void main(String[] args) { SpringApplication.run(Service.class, args); } }
2. demo/student/StudentController.java
package com.clubmgmt.clubmgmtstudentservice.student; @RestController @RequestMapping(path="/test") public class StudentController { @GetMapping("/get") //Root page public List<String> getStudents() { return List.of("Please", "Work"); } }
应用启动日志
D:\01. GitHub\personal-archive\schoolRelated\esd-project\ESDGroup2\club-mgmt-student-service> D: && cd "D:\01. GitHub\personal-archive\schoolRelated\esd-project\ESDGroup2\club-mgmt-student-service" && cmd /C ""C:\Program Files\Java\jdk-19\bin\java.exe" @C:\Users\limxu\AppData\Local\Temp\cp_dbr9avx6o54yics09eig13usu.argfile com.clubmgmt.clubmgmtstudentservice.ClubMgmtStudentServiceApplication " . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.0.3) 2023-03-02T23:26:20.845+08:00 INFO 20340 --- [ main] c.c.c.ClubMgmtStudentServiceApplication : Starting ClubMgmtStudentServiceApplication using Java 19.0.1 with PID 20340 (D:\01. GitHub\personal-archive\schoolRelated\esd-project\ESDGroup2\club-mgmt-student-service\target\classes started by limxu in D:\01. GitHub\personal-archive\schoolRelated\esd-project\ESDGroup2\club-mgmt-student-service) 2023-03-02T23:26:20.850+08:00 INFO 20340 --- [ main] c.c.c.ClubMgmtStudentServiceApplication : No active profile set, falling back to 1 default profile: "default" 2023-03-02T23:26:22.490+08:00 INFO 20340 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2023-03-02T23:26:22.504+08:00 INFO 20340 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2023-03-02T23:26:22.504+08:00 INFO 20340 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.5] 2023-03-02T23:26:22.601+08:00 INFO 20340 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2023-03-02T23:26:22.602+08:00 INFO 20340 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1648 ms 2023-03-02T23:26:22.772+08:00 DEBUG 20340 --- [ main] o.s.w.f.ServerHttpObservationFilter : Filter 'serverHttpObservationFilter' configured for use 2023-03-02T23:26:22.943+08:00 DEBUG 20340 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : ControllerAdvice beans: 0 @ModelAttribute, 0 @InitBinder, 1 RequestBodyAdvice, 1 ResponseBodyAdvice 2023-03-02T23:26:23.080+08:00 DEBUG 20340 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : 2 mappings in 'requestMappingHandlerMapping' 2023-03-02T23:26:23.116+08:00 DEBUG 20340 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Patterns [/webjars/**, /**] in 'resourceHandlerMapping' 2023-03-02T23:26:23.130+08:00 DEBUG 20340 --- [ main] .m.m.a.ExceptionHandlerExceptionResolver : ControllerAdvice beans: 0 @ExceptionHandler, 1 ResponseBodyAdvice 2023-03-02T23:26:23.456+08:00 INFO 20340 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator' 2023-03-02T23:26:23.558+08:00 INFO 20340 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2023-03-02T23:26:23.580+08:00 INFO 20340 --- [ main] c.c.c.ClubMgmtStudentServiceApplication : Started ClubMgmtStudentServiceApplication in 3.389 seconds (process running for 3.867) 2023-03-02T23:26:23.948+08:00 INFO 20340 --- [on(3)-127.0.0.1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2023-03-02T23:26:23.949+08:00 INFO 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2023-03-02T23:26:23.949+08:00 DEBUG 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Detected StandardServletMultipartResolver 2023-03-02T23:26:23.950+08:00 DEBUG 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Detected AcceptHeaderLocaleResolver 2023-03-02T23:26:23.952+08:00 DEBUG 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Detected FixedThemeResolver 2023-03-02T23:26:23.954+08:00 DEBUG 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@5a346d64 2023-03-02T23:26:23.955+08:00 DEBUG 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Detected org.springframework.web.servlet.support.SessionFlashMapManager@1aff1d9c 2023-03-02T23:26:23.956+08:00 DEBUG 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data 2023-03-02T23:26:23.958+08:00 INFO 20340 --- [on(3)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Completed initialization in 8 ms
访问错误信息
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Thu Mar 02 21:34:54 SGT 2023 There was an unexpected error (type=Not Found, status=404).
项目结构
src/ |__main/ |___java/ |___com/ |___clubmgmt/ |__clubmgmtstudentservice/ |__Service.java |__student/ |__StudentController.java |__Student.java
解决方案
- 修复控制器语法错误:
StudentController.java末尾缺少类闭合的},同时缺少List的导入语句,导致类无法正确编译加载。修正后的完整代码如下:package com.clubmgmt.clubmgmtstudentservice.student; import java.util.List; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(path="/test") public class StudentController { @GetMapping("/get") public List<String> getStudents() { return List.of("Please", "Work"); } } - 对齐启动类与启动命令:日志显示实际启动的是
ClubMgmtStudentServiceApplication,但代码中的启动类是Service,两者不一致。要么修改Service.java的类名为ClubMgmtStudentServiceApplication,要么调整启动命令指向com.clubmgmt.clubmgmtstudentservice.Service。 - 清理重建项目:执行
mvn clean install(Maven)或./gradlew clean build(Gradle),清除旧编译产物后重新构建启动。 - 显式指定包扫描范围:若默认扫描未生效,可在启动类上显式指定扫描包:
@SpringBootApplication(scanBasePackages = "com.clubmgmt.clubmgmtstudentservice") public class Service { public static void main(String[] args) { SpringApplication.run(Service.class, args); } }
内容的提问来源于stack exchange,提问作者Peek0
相关产品推荐
相关产品推荐

