Spring Boot issues serializing java.time.LocalDateTime with Jackson to return ISO-8601 JSON timestamps?
The NoSuchMethodError
is because you are mixing versions of Jackson. Spring Boot 1.3.6 uses Jackson 2.6.7 and you are using 2.8.1 of jackson-datatype-jsr310
.
Spring Boot provides dependency management for Jackson, including jackson-datatype-jsr310
, so you should remove the version from your pom. If you want to use a different version of Jackson, you should override the jackson.version
property:
<properties>
<jackson.version>2.8.1</jackson.version>
</properties>
This will ensure that all your Jackson dependencies have the same version, thereby avoiding problems with mismatched versions.
You can also, if you wish, remove your Java code that's configuring the ObjectMapper
. The Java Time module will be automatically registered when it's in the classpath and writing dates as timestamps can be configured in application.properties
:
spring.jackson.serialization.write-dates-as-timestamps=false
Your ObjectMapper
bean must be marked as @Primary
in order to be picked up by Spring. Alternatively, you can just create a JavaTimeModule
bean and it will get picked up by Spring and added to the default object mapper.
You've probably seen it already but take a look at the official documentation.