【发布时间】:2019-10-25 05:26:26
【问题描述】:
我正在尝试将数据保存到我的 Postgres 数据库。这应该在方法上使用 PostMapping 注释,以便相应地发送对象。但是,由于某种原因,它需要一个“GET”方法。任何想法以及其他人是否遇到类似问题。我也无法调试该方法。
Inventory.java
@RestController
public class InventoryController {
@Autowired
private InventoryService inventoryService;
@RequestMapping(value="/add", method=RequestMethod.POST)
public Inventory addItem(@RequestBody(required = false) Inventory item) {
System.out.print("This is a test");
return inventoryService.save(item);
}
@GetMapping(path="/test")
@ResponseBody
public String testMethod() {
return "Method works!";
}
}
堆栈跟踪
出现意外错误(类型=不允许的方法,状态=405)。 不支持请求方法“GET” org.springframework.web.HttpRequestMethodNotSupportedException: 不支持请求方法“GET” org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:201) 在 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:421) 在 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:367) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.getHandlerInternal(RequestMappingHandlerMapping.java:449) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.getHandlerInternal(RequestMappingHandlerMapping.java:67) 在 org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:393)
我在“addItem”方法上尝试了以下注释,它仍然返回上述跟踪。
- @RequestMapping(value="/add", method=RequestMethod.POST)
- @PostMapping(path="/add")
我正在运行 Spring Boot 2.2.0.RELEASE
【问题讨论】:
-
您确定前端调用的是 POST 方法而不是 GET 吗?我怀疑
-
你能发帖吗,你正在调用什么 API 或 curl 请求?
-
天哪。我得去睡觉了。我正在使用浏览器到达终点。代码没有问题,而是使用的应用程序有问题。我下载了 Postman 并执行了请求,没有“GET”请求方法就到达了终点。
标签: spring-boot annotations http-post