1

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

我的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
}

有任何想法吗?

4

1 回答 1

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);
}
于 2013-02-13T05:11:09.807 回答