'Spring doesn't load JavaTimeModule after Spring Update just load legacy one
I updated my project from spring boot 2.3.8 to 2.6.7 and I upgrade the jackson version to 2.13.2
I set the JavaTimeModule like this:
@Bean
@Primary
public ObjectMapper objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.featuresToDisable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
builder.modulesToInstall(new JavaTimeModule());
return builder.build();
}
I have a Test checking if i set the JaveTimeModule correctly:
def "jackson config - adding JavaTimeModule and disable ADJUST_DATES_TO_CONTEXT_TIME_ZONE"(){
when:
def objectMapper = jacksonConfig.objectMapperBuilder()
then:
!objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
!objectMapper.getSerializationConfig().isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
objectMapper.getRegisteredModuleIds().contains("com.fasterxml.jackson.datatype.jdk8.Jdk8Module")
objectMapper.getRegisteredModuleIds().contains("com.fasterxml.jackson.datatype.jsr310.JavaTimeModule")
}
The test fails. Everytime I debug it, I just see that "com.fasterxml.jackson.datatype.jdk8.Jdk8Module" and "jackson-datatype-jsr310" as registered Modules. I don't see "com.fasterxml.jackson.datatype.jsr310.JavaTimeModule" as a registered module
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|