У меня есть ресурс с таким методом, как:
@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();
}
}
Thing:
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]: can не создавать экземпляр из объекта JSON (отсутствующий конструктор по умолчанию или создателю или, возможно, нужно добавить/включить информацию о типе?)
Почему Джерси/Джексон не десериализует мой объект JSON в мой POJO?