不支持java PostMapping服务Rest和Spring引导错误请求方法“POST”
我没有发现问题所在
控制器
@RestController("/api")
public class CoordenadaController {
@Autowired private RepositorioCoordenada repositorioCoordenada;
@PostMapping("/salvar")
public void save(String nome, int coordenadaX, int coordenadaY) {
this.repositorioCoordenada.save(new Coordenada(nome, coordenadaX, coordenadaY));
System.out.println("Salvou.....");
}
}
邮差客户
urllocalhost:8080/api/salvar?nome=Igreja&coordenadaX=10&coordenadaY=20
记录Erro邮递员客户
{
"timestamp": 1493257315171,
"status": 405,
"error": "Method Not Allowed",
"exception": "org.springframework.web.HttpRequestMethodNotSupportedException",
"message": "Request method 'POST' not supported",
"path": "/api/salvar"
}
日志错误春天
Request method 'POST' not supported
2017-04-26 22:41:55.168 WARN 8388 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported
如果删除@RestController中的/api,则使用@Post works注释的方法
localhost:8080/salvar?nome=Igreja&coordenadaX=10&coordenadaY=20
# 1 楼答案
您需要在@RestController注释之后设置@RequestMapping上的uri路径,例如:
所以,在您的代码中,您在@RestController中设置了这个路径,这就是为什么postman请求在没有/api路径的“/salvar”上工作的原因,因为对于spring,这个路径没有声明
# 2 楼答案
你把POST和GET混为一谈。 如果您想发布,请执行以下操作:
}
然后相应地使用postmant:使用post方法,创建一个json负载,并将其添加到Body部分
json有效负载:
您可以查看spring教程以了解更多信息:https://spring.io/guides/gs/rest-service/