Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I enable the JSR310 support for LocalDate using Jackson?

I have added the JS310 dependency to Maven and refreshed the dependencies:

<dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.13.0</version>
</dependency>

In the domain:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
LocalDate start;

However, I am receiving this error:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type java.time.LocalDate not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

like image 909
noumenal Avatar asked Sep 11 '25 22:09

noumenal


2 Answers

The error is indicative and explains you haven't registered the JavaTimeModule module like documented at datetime : to register it you can for example do in this way (or other equivalent way explained in the link I added previously, dependly from the jackson library version you are using) :

ObjectMapper mapper = JsonMapper.builder()
    .addModule(new JavaTimeModule())
    .build();
like image 79
dariosicily Avatar answered Sep 14 '25 10:09

dariosicily


finally i have solved it: use @Configuration public class JacksonConfig {

@Bean
public ObjectMapper objectMapper() {
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.registerModule(new JavaTimeModule());
    
    return objectMapper;
}

} and use @Autowired private ObjectMapper objectMapper;

if u create ObjectMapper objectMapper=new ObjectMapper(); inside ur method it will not work. and one more thing i have use springboot project so no jsr 310 dependency required for me

like image 20
humayun kabir Avatar answered Sep 14 '25 12:09

humayun kabir