1、新增完订单后,成功。
2、测试余额不足情况
3、事务回滚
4、io.seata.core.exception.BranchTransactionException: Branch session rollback failed and try again later xid = 192.168.43.131:8091:5935898758734508221 branchId = 5935898758734508223 Class cannot be created (missing no-arg constructor): java.time.LocalDateTime
Serialization trace:
value (io.seata.rm.datasource.sql.struct.Field)
fields (io.seata.rm.datasource.sql.struct.Row)
rows (io.seata.rm.datasource.sql.struct.TableRecords)
afterImage (io.seata.rm.datasource.undo.SQLUndoLog)
sqlUndoLogs (io.seata.rm.datasource.undo.BranchUndoLog)
at io.seata.rm.datasource.undo.AbstractUndoLogManager.undo(AbstractUndoLogManager.java:339)
at io.seata.rm.datasource.DataSourceManager.branchRollback(DataSourceManager.java:178)
at io.seata.rm.AbstractRMHandler.doBranchRollback(AbstractRMHandler.java:125)
at io.seata.rm.AbstractRMHandler$2.execute(AbstractRMHandler.java:67)
at io.seata.rm.AbstractRMHandler$2.execute(AbstractRMHandler.java:63)
at io.seata.core.exception.AbstractExceptionHandler.exceptionHandleTemplate(AbstractExceptionHandler.java:116)
at io.seata.rm.AbstractRMHandler.handle(AbstractRMHandler.java:63)
at io.seata.rm.DefaultRMHandler.handle(DefaultRMHandler.java:63)
at io.seata.core.protocol.transaction.BranchRollbackRequest.handle(BranchRollbackRequest.java:35)
at io.seata.rm.AbstractRMHandler.onRequest(AbstractRMHandler.java:150)
at io.seata.core.rpc.processor.client.RmBranchRollbackProcessor.handleBranchRollback(RmBranchRollbackProcessor.java:63)
at io.seata.core.rpc.processor.client.RmBranchRollbackProcessor.process(RmBranchRollbackProcessor.java:58)
at io.seata.core.rpc.netty.AbstractNettyRemoting.lambda$processMessage$2(AbstractNettyRemoting.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): java.time.LocalDateTime
4条答案
按热度按时间vu8f3i0k1#
解决方式3种
myzjeezk2#
@jsbxyyx 我使用8.0.19或者更高的mysql驱动依然有问题,,所以3是无效的,,想请问下更换序列化方式,,现在哪个支持
seata 1.4.2
hs1ihplo3#
如果你本地接收的类型为LocalDateTime,那么就只能自己实现序列化了
vybvopom4#
我遇到了同样的问题,但最终解决了
遇到问题的环境:
seata-server 1.4.2
alibaba cloud version : 2021.1
spring-boot.version 2.6.4
spring-cloud.version: 2021.0.1
spring-cloud-alibaba.version : 2021.1
alibaba.nacos.version : 2.0.4
mysql driver : 8.0.24
seata-serializer-kryo : 1.4.2
序列化方式: kryo
解决方式: 对mysql 驱动降级,就可以正常回滚了,降级到了 5.7.49