我已设置了我的请求的内容类型,但仍然收到不受支持的媒体类型异常。在这里寻找第二眼......
我的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
}
有什么想法吗?
答案 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);
}