【问题标题】:Axon Framework EventStore ReadEvents Serialization ProblemAxon Framework EventStore ReadEvents 序列化问题
【发布时间】:2021-12-05 04:51:51
【问题描述】:

5.5 和 axon 框架启动器 4.5.4 我可以毫无问题地使用事件处理程序和查询处理程序读取和写入我的事件 但是当我想使用 eventstore.readevents 函数时,我得到了序列化。我尝试设置我的阅读器和编写器的应用程序属性,但仍然没有工作同样的错误(顺便说一下,我每次都清理数据库并删除旧事件)。我也尝试设置 xstream 类型但仍然是同样的问题

axon.serializer.general=jackson
axon.serializer.events=jackson
axon.serializer.messages=jackson


com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.axonframework.serialization.UnknownSerializedType and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]) 
    at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) ~[jackson-databind-2.12.5.jar:2.12.5]
    at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1276) ~[jackson-databind-2.12.5.jar:2.12.5]
    at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400) ~[jackson-databind-2.12.5.jar:2.12.5]

【问题讨论】:

    标签: spring-boot jackson axon axon-framework


    【解决方案1】:

    首先,我要问你为什么要使用eventStore#readEvents,因为这不是常见的用法。此方法由 Framework 内部使用,大多数情况下应保持这种方式。

    对于您的问题,您可以轻松检查框架代码发生了什么以及它如何使用eventStore#readEvents 方法。 首先签名hereDomainEventStream readEvents(String aggregateIdentifier);

    它返回一个DomainEventStream,它是DomainEventMessageIterator 实现(您也可以在code 上看到:public interface DomainEventStream extends Iterator<DomainEventMessage<?>> {)。

    检查任何用法,例如EventSorcingRepository,您可以看到它是如何使用herehere 的,并且几乎使用了Iterator 的方法(例如hasNextpeek)。 使用这些方法可以让您访问DomainEventMessage,在那里您可以获得Type,还可以访问Payload(以及您可能需要的其他有用的东西)。

    希望澄清它的用法,但也要确保你真的想使用它!

    【讨论】:

    • 实际上我尝试学习 axon 的详细功能。因此我尝试了不同的代码。如果使用 eventstore 读取事件不是一个好的做法,我没有任何具体理由使用它。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多