Java Seata使用常见错误
1.Seata使用常见错误
Seata在开始工作时,会将方法相关对象序列化后保存在对应数据库的undo_log表中
但是Seata我们序列化的方式支持很多中,常见的jackson格式序列化的情况下,不支持java对象LocalDataTime类型的序列化,序列化运行时会发送错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j4d4S0Dn-1663766699051)(1656900968656.png)]
如果见到这样的错误, 就是因为jackson不能序列化LocalDataTime导致的
要想解决,两方面思路,
1.将序列化过程中LocalDataTime类型转换为Date
2.将Seata序列化转换为kryo类型,但是需要在pom文件中添加依赖(我们的项目中有)
<!--解决seata序列化问题-->
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-serializer-kryo</artifactId>
</dependency>
yml文件配置
#seata服务端
seata:
tx-service-group: csmall_group
service:
vgroup-mapping:
csmall_group: default
grouplist:
default: ${my.server.addr}:8091
client:
undo:
log-serialization: kryo