Ошибка анализа моего Json ввода, содержащего тип Мгновенной даты - PullRequest
0 голосов
/ 04 апреля 2020

Caused by: org.springframework.http.converter.HttpMessageNotReadableException: Invalid JSON input: Cannot deserialize value of type `java.time.Instant` from String "2019-07-22 08:09:45": Failed to deserialize java.time.Instant: (java.time.format.DateTimeParseException) Text '2019-07-22 08:09:45' could not be parsed at index 10; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.Instant` from String "2019-07-22 08:09:45": Failed to deserialize java.time.Instant: (java.time.format.DateTimeParseException) Text '2019-07-22 08:09:45' could not be parsed at index 10

Возвращается Json:

{
   "job":"Foo",
   "time":"2020-02-12 18:33:23"
}

Я использую RestTemplate для вызова какой-либо другой службы, но каждый раз выше исключение выскакивает, давая дату ошибки. Я попытался настроить ObjectMapper для RestTemplate, но проблема все еще та же.

Ниже приведен фрагмент кода, который я использую для настройки RestTemplate.

@Bean
    public RestTemplate getRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().add(0, createMappingJacksonHttpMessageConverter());
        return restTemplate;
    }

    @Bean
    public ObjectMapper createObjectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        objectMapper.setDateFormat(df);
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        objectMapper.registerModule(new JavaTimeModule());
        return objectMapper;
    }

    @Bean
    public MappingJackson2HttpMessageConverter createMappingJacksonHttpMessageConverter() {

        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setObjectMapper(createObjectMapper());
        return converter;
    }

PS: Структура Pojo (Может не редактируйте для этого варианта использования, поскольку POJO в общем).

String job;
Instant executionTime;
...