2016-11-03 19 views
0

安らかなサービスにリクエストを投稿するのに問題があります。 エンティティがjsonに正しく変換されていないようです。 400のリクエストレスポンスが返されました。エンティティが安らかなサービスに投稿していません

私はこれが問題の原因となっているDateTimeRangeオブジェクトのリストだと思っています。非常によく似た要求が働いていますが、すべてのpojosプロパティは文字列です。

リストと私のカスタムDateTimeRangeのjsonからのマーシャリングを有効にするには、エンティティに注釈を付ける必要がありますか?

String actionUrl = buildUrl(myResftullUrlTest); 
Client client = ClientBuilder.newClient().register(JacksonJsonProvider.class); 
Builder target = client.target(actionUrl).request(); 

CreateWebinarRequest createWebinarRequest = new CreateWebinarRequest(); 
createWebinarRequest.setDescription("Test1 desc"); 
createWebinarRequest.setSubject("Test1 subject") 
createWebinarRequest.setTimeZone("Europe/Dublin") 

List<DateTimeRange> dateTimeRangeParam = new ArrayList<DateTimeRange>(); 
DateTimeRange dateTimeRange = new DateTimeRange(); 
dateTimeRange.setStartTime("2016-11-03T08:34:12"); 
dateTimeRange.setEndTime("2016-11-03T09:34:12"); 
dateTimeRangeParam.add(dateTimeRange); 
createWebinarRequest.setTimes(dateTimeRangeParam); 

Response response = null; 
switch (goToTrainingRequestData.getRequestType()) { 
    case HTTP_POST : 
    response = target.buildPost(Entity.json(createWebinarRequest)).invoke(); 
    ... 
    } 
} 

CreateWebinarRequest:

public class CreateWebinarRequest implements Serializable { 
    private String subject = null; 
    private String description = null; 
    private List<DateTimeRange> times = new ArrayList<DateTimeRange>(); 
    private String timeZone = null; 

    public String getSubject() { 
    return subject; 
    } 

    public void setSubject(String subject) { 
    this.subject = subject; 
    } 

    public String getDescription() { 
    return description; 
    } 

    public void setDescription(String description) { 
    this.description = description; 
    } 

    public List<DateTimeRange> getTimes() { 
    return times; 
    } 

    public void setTimes(List<DateTimeRange> times) { 
    this.times = times; 
    } 

    public String getTimeZone() { 
    return timeZone; 
    } 

    public void setTimeZone(String timeZone) { 
    this.timeZone = timeZone; 
    } 
} 

DateTimeRange:

public class DateTimeRange { 
    private String startTime = null; 
    private String endTime = null; 

    public String getStartTime() { 
    return startTime; 
    } 

    public void setStartTime(String startTime) { 
    this.startTime = startTime; 
    } 

    public String getEndTime() { 
    return endTime; 
    } 

    public void setEndTime(String endTime) { 
    this.endTime = endTime; 
    } 
} 

答えて

0

問題解決の男とギャル!すべてのデータのマーシャリングと間違っ 何も、私は、サーバーからの詳細な応答を得なかっ:

String error = response.readEntity(String.class); 

そして、それは私に代わってブーイングブーイングでした!

{"errorCode":"RequestValidationError","description":"Request contains invalid parameters. See validationErrorCodes for specific errors.","Details":"times cannot be in past","incident":"6100682426566883853","validationErrorCodes":[{"code":"requestStartTimeInPast","description":"times cannot be in past"}]} 
関連する問題