Я установил приложение Spring Microservice с конечной точкой POST, которая принимает объект RequestBody, который содержит поле «java.util.Date».Из моего другого приложения, когда я отправляю запрос к этой конечной точке POST, Дата в JSON выглядит хорошо, в формате «2019-06-20T13: 33: 47.487-07: 00», но когда мой микросервис получает запрос,он преобразует строку даты в следующее: «20 июня 2019 13:33:47» и сообщает мне: «Невозможно десериализовать значение типа java.util.Date
из строки» 20 июня 2019: 33: 47: недопустимое представление ".
Я поиграл с разными аннотациями, включая" @Temporal (TemporalType.TIMESTAMP) "и" @DateTimeFormat (iso = DateTimeFormat.ISO.DATE_TIME) ".Также попытался установить JSONFormat вручную, но это не является исправлением, поскольку строка даты ввода как-то где-то интерпретируется.
Вот конечная точка POST микросервиса:
@PostMapping(path = "/orders/create")
public ResponseEntity createOrder(@RequestBody final HubOrder hubOrder) {
List<OrderLineitem> orderLineitem = orderService.hubOrderToOrderLineitems(hubOrder);
repository.saveAll(orderLineitem);
return ResponseEntity.created().build();
}
И bean:
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class HubOrder {
private BigInteger id;
private Date created;
private String lastModifiedBy;
private List<HubLineitem> lineitems;
}
И я ударил конечную точку из моего приложения следующим образом:
HubOrder hubOrder = createHubOrderFromOrder(order);
Gson gson = new Gson();
HttpPost request = new HttpPost("http://localhost:8888/orders/create");
StringEntity params = new StringEntity(gson.toJson(hubOrder));
HttpClient httpClient = HttpClientBuilder.create().build();
request.addHeader("content-type", "application/json");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
Где hubOrder.getCreated () == "2019-06-20T13: 33: 47.487-07: 00«
Ошибка от моего микросервиса:« 2019-07-08 20: 50: 47.663 WARN 2400 --- [nio-8888-exec-2] .wsmsDefaultHandlerExceptionResolver: Resolved [org.springframework.http.converter.HttpMessageNotReadableException: ошибка синтаксического анализа JSON: невозможно десериализовать значение типа java.util.Date
из строки «20 июня 2019 13:33:47 вечера»: недопустимое представление (ошибка: не удалось проанализировать значение даты »20 июня 2019 1:33: 47 PM ': Неразборчивая дата: "20 июня 2019 13:33:47"); вложенное исключение - com.fasterxml.jackson.databind.exc.InvalidFormatException: Невозможно десериализовать значение типа java.util.Date
из String "20 июня, 2019 13:33:47 ": недопустимое представление (ошибкаили: Не удалось проанализировать значение даты '20 июня 2019 г. 13:33:47': не разбирается дата: "20 июня 2019 г. 13:33:47") "