Spring Boot 2 не сериализует LocalDateTime - PullRequest
0 голосов
/ 18 ноября 2018

Недавно я пытался реализовать микро-сервис с использованием Spring-Boot 2.

Теперь, когда я пытаюсь вернуть объект, который содержит java.time.LocalDateTime из моей службы REST, LocalDateTime сериализуется как массивцелых чисел.Примерно так:

{
  "id": "5bf1425f9f8de267f04b22ad",
  "description": "aaaaaarrrgggghhhhh",
  "timestamp": [
    2018,
    11,
    18,
    11,
    43,
    43,
    889000000
  ],
  "time": 2.25,
  ...
}

Я пытался настроить ObjectMapper через настройки в application.yml

spring:
  jackson:
    serialization:
      write-dates-as-timestamps: false

, но не работает.Я также пытался настроить новый ObjectMapper с помощью класса Spring Configuration, например:

@Configuration
public class JacksonConfig {
  @Bean
  @Primary
  public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
    final ObjectMapper objectMapper = builder.build();
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    return objectMapper;
  }
}

Моя конфигурация загружается (отладчик останавливается на точке останова) - просто он ничего не делает.

Я попытался добавить jackson зависимостей вручную (также для модуля jsr310) в мой pom.xml - тоже безуспешно.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
</dependency>

По какой-то причине похоже, что Spring Boot игнорирует мои попытки чего-либос ObjectMapper, и он продолжает возвращать один и тот же результат.

Установка уровня журнала DEBUG для com.fasterxml в application.yml также не приводит к выводу:

logging:
  level:
    com.fasterxml: DEBUG

Я использую Spring Boot2.1.0-РЕЛИЗ с Джексоном 2.9.7.

Основной файл pom был сгенерирован из https://start.spring.io Мой проект компилируется и работает на Java 8 JVM.

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Этот ответ основан на комментариях Teppic к исходному сообщению.

Проблема была вызвана @EnableWebMVC на одном из моих классов @Configuration. Удаленный @EnableWebMVC сразу решил проблему.

0 голосов
/ 19 ноября 2018

Из ваших комментариев я обнаружил проблему, когда вы смешивали @EnableWebMvc с sprongboot.Оказывается, Spring Boot плохо сочетается со стандартным Spring MVC @EnableWebMvc.Когда вы добавляете аннотацию, автоконфигурация при весенней загрузке отключается.

0 голосов
/ 18 ноября 2018

Вы должны добавить поддержку jsr310 к Джексону:

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.4.0</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...