415不支持的媒体类型。内容类型集

时间:2013-02-13 05:06:53

标签: json rest post jersey

我已设置了我的请求的内容类型,但仍然收到不受支持的媒体类型异常。在这里寻找第二眼......

我的java代码:

@Path("/myPath")
public class MyResource {

    SensorStore dataStore = new SensorStoreDynamoImpl();

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("/{id}")
    public Reading getObj(String id) {
        return dataStore.getValue(id);
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public void saveObj(String id, Double myDouble, Long myLong) {
        dataStore.saveReading(id, myDouble, myLong);
    }

}

打电话给我:

POST to /myPath

Header:
Content-Type: application/json

Body:

{
id:"test", 
myDouble:22.2, 
myLong:22
}

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

这看起来不像我所知道的任何有效的资源方法。如果有一些我不了解的高级功能,我很乐意得到纠正,但是我从来不知道JAX-RS / Jersey允许你按名称将任意JSON字段绑定到方法参数。你需要更像的东西:

class MyPojo {
    String id;
    Double myDouble;
    Long myLong;
}

@POST
@Consumes(MediaType.APPLICATION_JSON)
public void saveObj(MyPojo myPojo) {
    dataStore.saveReading(myPojo.id, myPojo.myDouble, myPojo.myLong);
}