Я использую зависимости Jackson для сериализации моего объекта запроса, который содержит некоторые поля Java Instant.java Instant не получает сериализован как миллисекунды, используя jackson
Ниже приведены мои зависимости mavan для Джексона
<!-- jackson dependecies -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<version>2.8.5</version>
</dependency>
<!-- Jackson dependencies end -->
Я зову RESTful службы из моего кода с помощью jaxrs, ниже соответствующих зависимостей Maven.
<!-- Jersey RESTful Services -->
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>2.15</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Jersey json -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.15</version>
</dependency>
<!-- End -->
Мы используем затененную банку Apache, чтобы положить все банки в одну затененную банку. мы используем Java8 для запуска затененной банки. При сериализации объектов java Instant не становится сериализованным как миллисекунды, а наносекунды. то есть
"busDate":{"nano":0,"epochSecond":1482796800} instead of
"busDate":1482796800
Мы устанавливаем ниже глобальные настройки класса ObjectMapper.
private static ObjectMapper staticMaper;
static {
staticMaper = new ObjectMapper();
staticMaper.findAndRegisterModules();
staticMaper.setSerializationInclusion(Include.NON_NULL);
staticMaper.disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
staticMaper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
staticMaper.disable(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS);
staticMaper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
staticMaper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
staticMaper.enable(JsonGenerator.Feature.ESCAPE_NON_ASCII);
}
Может кто-то, пожалуйста, помогите мне в решении этой проблемы.
'findAndRegisterModules' не может найти модуль jsr310. Похоже, что зависимость не находится в пути к классам. Проверьте свою затененную банку, чтобы увидеть, есть ли эта зависимость. – Veeram