我正在设计一个简单的REST API,并且GET方法工作正常,但是我无法让POST方法正常工作。
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response nuevaCancion(Cancion cancion) {
Response response = Response.ok().build();
Response negativeResponse = Response.notAcceptable(null).build();
return new ConectorCliente("usr", "pass", "REST").insertarCancion(cancion) ? response : negativeResponse;
}
所以我的方法接收一个应该是 JSON 格式的Cancion
类(类已经有@XmlRootElement
注释)实例,如果 JSON 中的数据一切正常,它将返回一个200
代码和一个406 Not Acceptable
代码。
我正在尝试通过此 curl 语句测试该方法:
curl -X POST -d @cancion.json http://localhost:8080/REST/webresources/canciones --header "Content-Type:application/json"
其中 cancion.json 是一个包含Cancion
实例的正确 JSON 表示的文件。
但是我得到了一个HTTP Status 415 - Unsupported Media Type
代码。同样停留:服务器拒绝此请求,因为请求实体的格式不受所请求方法的请求资源支持。
我使用 Tomcat 作为服务器,使用 Jersey 和 Jackson 库作为 REST。我的代码有什么问题?