我的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: 没有可用的转换器 有什么解决办法吗?
我尝试在属性文件中设置这些属性 轴突: 序列化器: 将军:杰克逊 事件:杰克逊 消息:杰克逊
XStream 是例外,它无法序列化(反)序列化您的对象。鉴于您使用的 Axon 版本已超过 2 年,您传递接收的 XStream 版本很可能无法处理某些 Java 17 构造。我建议更新到 Axon 的最新版本(为什么不是最后一个版本:4.9.1?),看看是否可以解决问题。
请注意,通过设置
axon.serializer.messages=jackson
,Spring Boot 自动配置将为您的消息配置 Jackson Serializer,而不是 XStream。通过该设置,您根本不会遇到此异常。