Spring boot 我可以在多个服务中对同一事件使用jackson和xstream序列化程序吗
我有两个spring boot micro服务核心和网络:Spring boot 我可以在多个服务中对同一事件使用jackson和xstream序列化程序吗,spring-boot,axon,Spring Boot,Axon,我有两个spring boot micro服务核心和网络: Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (’<’ (code 60)): expected a valid value (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’) core服务对由web触发的某些事件(Emplo
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (’<’ (code 60)):
expected a valid value (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’)
core服务对由web触发的某些事件(EmployeeCreatedEvent)作出反应。
core服务使用jackson serializer来序列化命令、查询、事件和消息,而web服务使用xstream serializer。
我在处理由网站触发的EmployeeCreatedEvent时,发现核心中的以下错误:
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (’<’ (code 60)):
expected a valid value (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’)
是否有人可以建议在不同的服务中对同一事件使用不同的序列化程序。我同意这里的@Augusto,您应该决定在所有服务中使用哪种序列化格式 我假设您从默认序列化程序(即
XStream
和XML)开始,然后决定转到Jackson
(即JSON)。
在这种情况下,我可以与您分享两条建议:
- 您可以编写一个具有两种实现的自定义序列化程序,并尝试使用这两种实现,然后查看哪一种可以工作,例如尝试使用XML和回退到JSON
- 或者您可以拥有一个
,该组件将侦听来自组件
的所有事件存储
,使用事件
反序列化它们,并使用XStream
将它们写回另一个Jackson
。在这种情况下,对于此迁移期间,您将使用2个事件流(每个事件存储
)创建此组件,但迁移完成后,整个EventStore
将使用JSON。这需要一些工作,但在我看来,这是最好的方法,并将在未来为您节省大量时间和痛苦。 您可以查看有关配置2个源的更多信息EventStore
XStream
和XML)开始,然后决定转到Jackson
(即JSON)。
在这种情况下,我可以与您分享两条建议:
- 您可以编写一个具有两种实现的自定义序列化程序,并尝试使用这两种实现,然后查看哪一种可以工作,例如尝试使用XML和回退到JSON
- 或者您可以拥有一个
,该组件将侦听来自组件
的所有事件存储
,使用事件
反序列化它们,并使用XStream
将它们写回另一个Jackson
。在这种情况下,对于此迁移期间,您将使用2个事件流(每个事件存储
)创建此组件,但迁移完成后,整个EventStore
将使用JSON。这需要一些工作,但在我看来,这是最好的方法,并将在未来为您节省大量时间和痛苦。 您可以查看有关配置2个源的更多信息EventStore