私はこの種の質問が過去に提起されたが、まったく同じ問題ではないことを知っていますので、私はこの質問をする権利を発見しました。私は、REST WebサービスのJACKSONとともにJERSEYを使用していジャクソンはセッターを使用していません
(JAVA 1.8_011 + TomcatのV7.0 + Windows 7の+ JERSEY-共通2.23.2 + JACKSONの2.8.2)私のPOJOフィールドの
ワン以下のセッターがあります
@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::
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;
}
私のWebサービスは以下のとおりです。デバッグ後
{
"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をPOJOにJSONから変換するために私のセッターを使用していないということです
おかげ
コメントを外したときの例外は何ですか? – Veeram
throw new IllegalArgumentException( "開始日は終了日より前でなければなりません"); –
あなたは正確に何を期待していますか?どのコード行が失敗するのですか?投稿のサンプルjsonには終了日より前の開始日があるため、問題の内容を理解できません。 – Phil