我可以将复杂的对象传递给命令处理程序和事件处理程序 AXON Spring boot

问题描述 投票:0回答:1

我的java版本17和axon 4.5.3

这是我的控制器。


 buildOrder = orderService.buildOrder(orderDto.getCartCode(),token);
                  CreateOrderCommand createOrderCommand
                    = CreateOrderCommand.builder()
                    .cartCode(orderDto.getCartCode())
                    .orderStatus("CREATED")
                    .orderCode(buildOrder.getOrderCode())
                    .order(buildOrder)
                    .build();
                    commandGateway.sendAndWait(createOrderCommand);

在这里,我正在构建我的订单对象并传递到网关。但它返回 com.thoughtworks.xstream.converters.ConversionException: 没有可用的转换器 有什么解决办法吗?

我尝试在属性文件中设置这些属性 轴突: 序列化器: 将军:杰克逊 事件:杰克逊 消息:杰克逊

java xstream axon
1个回答
0
投票

XStream 是例外,它无法序列化(反)序列化您的对象。鉴于您使用的 Axon 版本已超过 2 年,您传递接收的 XStream 版本很可能无法处理某些 Java 17 构造。我建议更新到 Axon 的最新版本(为什么不是最后一个版本:4.9.1?),看看是否可以解决问题。

请注意,通过设置

axon.serializer.messages=jackson
,Spring Boot 自动配置将为您的消息配置 Jackson Serializer,而不是 XStream。通过该设置,您根本不会遇到此异常。

© www.soinside.com 2019 - 2024. All rights reserved.