seata 踩坑记录
seata 启动
启动脚本里面指定了 CMS 并行收集器,所以我们需要指定启动 jdk 为 jdk8。
windows 环境在 seata-server.bat
里面配置 JAVACMD 变量,linux 就修改 seata-server.sh
。
set JAVACMD=C:\JDK\jdk-8\bin\java.exe
项目添加 seata 启动报错
SeataRestTemplateAutoConfiguration.class 循环依赖错误,我们可以看到 他自己注入 SeataRestTemplateInterceptor bean,而这个 bean 又是在自己内部创建的。
解决方案:
Spring 启动排除 SeataRestTemplateAutoConfiguration.class 配置类,自己手动重写配置类,给注入配置成懒加载模式
// 启动指定排除 SeataRestTemplateAutoConfiguration.class 配置类 @SpringBootApplication(exclude = SeataRestTemplateAutoConfiguration.class)
项目执行 sql 报 jackson 数据绑定错误 com.fasterxml.jackson.databind.exc.InvalidDefinitionException
解决方案:
方案一:数据库涉及的所有表的 datetime 的数据类型调整为 timestamp,明显不现实。timestamp是 1970-01-01 00:00:00到 2037 年。
方案二:seta 客户端修改序列化方式为 kryo
, 添加相关引用
client.undo.logSerialization = kryo
<dependency> <groupId>com.esotericsoftware</groupId> <artifactId>kryo</artifactId> <version>4.0.2</version> </dependency> <dependency> <groupId>de.javakaffee</groupId> <artifactId>kryo-serializers</artifactId> <version>0.42</version> </dependency>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律