【发布时间】:2015-09-14 15:46:53
【问题描述】:
我有一个资源,其方法如下:
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/add")
public Response putThing(Thing thing) {
try {
//Do something with Thing object
return Response.status(HttpStatus.SC_OK).build();
} catch (Exception e) {
log.error("Request failed", e);
return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).build();
}
}
事情:
public class Thing {
private final String symbol;
private final String name;
public Stock(String symbol, String name) {
this.symbol = symbol;
this.name = name;
}
public String getSymbol() {
return this.symbol;
}
public String getName() {
return this.name;
}
}
当我发出 PUT 请求时:
PUT /rest/add HTTP/1.1
Host: localhost:8135
Content-Type: application/json
Cache-Control: no-cache
{"symbol":"some symbol","name":"some name"}
我收到以下回复:
没有为类型 [简单类型,类 Thing] 找到合适的构造函数:可以 不从 JSON 对象实例化(缺少默认构造函数或 创建者,或者可能需要添加/启用类型信息?)
为什么 Jersey/Jackson 没有将我的 JSON 对象反序列化到我的 POJO 中?
【问题讨论】:
标签: java jersey jackson jersey-2.0