Closed teddy-chen closed 3 years ago
Hi, and sorry for not seeing that issue sooner.
It's not a client bug if you don't have com.fasterxml.jackson.datatype:jackson-datatype-jsr310
in your classpath. This dependency is not used by the client and we rather keep the dependency graph as small as possible.
Hi, thanks for your information.
When I added the following dependency to my pom.xml file, it works.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.2</version>
</dependency>
Hi,
I am writing events with Java 8 Instant type. But the EventData.builderAsJson() method does not support it. My code:
StackTrace:
java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type
java.time.Instant
not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handlingCaused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type
java.time.Instant
not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1276) at com.fasterxml.jackson.databind.ser.impl.UnsupportedTypeSerializer.serialize(UnsupportedTypeSerializer.java:35) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4485) at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsBytes(ObjectMapper.java:3763) at com.eventstore.dbclient.EventDataBuilder.json(EventDataBuilder.java:24) ... 66 moreBecause the EventDataBuilder uses a static final JsonMapper to write event data as following, it seems no way to config it to add Java 8 date/time type support.
public class EventDataBuilder { private static final JsonMapper mapper = new JsonMapper(); private byte[] eventData; private byte[] metadata; private String eventType; private boolean isJson; private UUID id; ...
I'm using the following dependency: