我試圖用RestEasy的客戶端調用一個REST服務客戶RestEasy的與LocalDateTime
在我的服務我springboot創建並返回一個LocalDateTime PROPERT
如果我用這個depencency
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.8</version>
</dependency>
這是我在我的豆中的代碼:
private LocalDateTime dtPublicacao;
這是當我打電話給我的服務:
dtPublicacao: "2017-04-20T00:00:00"
如果我刪除這樣的結果:
dtPublicacao: {
hour: 0,
minute: 0,
second: 0,
nano: 0,
dayOfYear: 110,
dayOfWeek: "THURSDAY",
month: "APRIL",
dayOfMonth: 20,
year: 2017,
monthValue: 4,
chronology: {
id: "ISO",
calendarType: "iso8601"
}
}
所以在我的客戶我創建相同的模型,並用它來執行獲取
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8585").path("/edital/");
try{
List<EditalVO> response = target.request().get(new GenericType<List<EditalVO>>(){});
return response;
}catch (NotFoundException e) {
throw new NotFoundException();
}
所以,如果我把我的客戶LocalDateTime我得到這個錯誤:
Caused by: org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class java.time.LocalDateTime] from JSON String; no single-String constructor/factory method (through reference chain: br.com.lumera.protesto.edital.vo.EditalVO["dtExpiracao"])
解決我需要在我的客戶端形式LocalDateTime更改爲日期,並添加
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dtPublicacao;
我已經嘗試添加在我的客戶端相同的依賴,但他註冊LocalDateTimeSerializer.class但是當我叫他REST點沒有通過序列化方法,我又得到了錯誤。
我可以從Restasey客戶端接收併發送LocalDateTime嗎?
TKS
UPDATE 我已經盡力做到這一點太:
ObjectMapper obj = new ObjectMapper();
obj.registerModule(new JavaTimeModule())
沒有成功,後來我嘗試在我的客戶:
client.register(obj);
與沒有成功..如果我調試我的應用程序,他輸入方法
public LocalDateTimeSerializer(DateTimeFormatter f) {
super(LocalDateTime.class, f);
}
private LocalDateTimeSerializer(LocalDateTimeSerializer base, Boolean useTimestamp, DateTimeFormatter f) {
super(base, useTimestamp, f);
}
在LocalDateTimeSerializer
但不`噸的序列化方法進入或反序列化
的[javadoc的(https://docs.jboss.org/resteasy /docs/3.0.9.Final/javadocs/javax/ws/rs/core/Configurable.html#register(java.lang.Object))說:註冊擴展提供程序或功能元提供程序實例可用於這個範圍的範圍。 –