Spring Boot+MongoDB项目Postman请求404错误求助
排查Spring Boot + MongoDB接口404错误的原因
1. 上下文路径不匹配
你请求的URL包含/mdb-spring-boot-product-organizer/前缀,但Spring Boot默认没有上下文路径,除非你在配置文件中专门设置了server.servlet.context-path=/mdb-spring-boot-product-organizer。
如果没配置该参数,正确的请求URL应为:http://localhost:8080/api/addProduct
若确实需要这个上下文路径,需在application.properties或application.yml中添加配置:
# application.properties server.servlet.context-path=/mdb-spring-boot-product-organizer
2. 请求方法不匹配
addProduct接口用@PostMapping注解,仅接收POST请求。如果Postman中误用了GET、PUT等其他方法,会直接返回404。请确认请求方法选择POST,且Body中传入符合Product结构的JSON数据。
3. 确认Controller包扫描有效性
主类MdbSpringBootApplication位于根包com.example.mdbspringbootproductorganizer,@SpringBootApplication默认会扫描该包及其所有子包,但可以额外核对:
- Controller类上的
@RestController和@RequestMapping("/api")拼写无误,无大小写错误 - 启动日志中是否出现接口映射注册信息,比如:
若没有这类日志,说明Controller未被Spring正确扫描注册,需检查包结构或注解配置。Mapping "{[/api/addProduct],methods=[POST]}" onto public java.lang.String com.example.mdbspringbootproductorganizer.controller.ProductController.saveProduct(com.example.mdbspringbootproductorganizer.model.Product)
4. 潜在反序列化问题(非404直接原因,但需提前修复)
你的Product类仅提供了带参构造函数,Spring MVC反序列化@RequestBody的JSON时需要无参构造函数。这不会导致404,但会在接口匹配成功后返回400错误,建议立即添加:
public Product() { // 无参构造函数 }
内容的提问来源于stack exchange,提问作者Sohaib
相关产品推荐
相关产品推荐

