Я знаю, что этот вопрос был поднят в прошлом, но не совсем такая же проблема, поэтому я нашел право задать этот вопрос.Jackson не использует setter
Я использую Джерси вместе с Джексоном для REST веб-сервиса (JAVA 1.8_011 + Tomcat v7.0 + окна 7 + ДЖЕРСИ-общий 2.23.2 + ДЖЕКСОН 2.8.2)
Один из моих POJO поля имеет следующий сеттер:
public void setEndDate(LocalDateTime endDate) {
if (this.startDate != null && this.startDate.isAfter(endDate))
{
throw new IllegalArgumentException("Start date must to be before End date");
}
this.endDate = endDate;
}
мой веб-сервис является следующее:
@PUT
@Path("/updateCoupon")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_PLAIN)
public String updateCoupon(Coupon coupon) {
try
{
//Coupon tmpCoupon = new Coupon(coupon);
System.out.println("*" + coupon.getEndDate().toString() + "*");
getFacade().updateCoupon(coupon);
return "ok";
}
catch (FacadeException | IllegalArgumentException e)
{
return e.getMessage();
}
}
JSON:
{
"startDate":"2016-11-04T00:00",
"endDate":"2016-11-09T00:00",
"amount":7,
"id":143,
"image":"390_290_5cc10a4d-9a3f-4cfc-8.jpg",
"message":"gfd",
"price":3.34,
"title":"n37",
"type":"HEALTH"
}
После отладки и испытаний проблема заключается в том, что JSON не использует мой сеттер преобразовать из JSON в POJO (это происходит в более сеттеры так сеттер это сам не проблема)
Благодаря
Какое исключение вы получаете, когда вы раскомментируете? – Veeram
throw new IllegalArgumentException («Дата начала должна быть до даты окончания»); –
Что именно вы ожидаете? Какая строка кода выходит из строя? Образец json в вашем сообщении имеет дату начала до даты окончания, поэтому я не понимаю, в чем проблема. – Phil