alibaba / alibaba/spring-cloud-alibaba

Spring Cloud Alibaba 2025.1.0.1-SNAPSHOT Seata NoClassDefFoundError UndoLogParserFactory$SingletonHolder

Open
#4,289 14 comments 0 reactions 1 assignee Claimed by @xuxiaowei-com-cn View on GitHub
area/seata
Dominant language
Java
Stars
29.2k
Forks
8.5k
Avg merge
1d 23h
Merged PRs (30d)
12

Description

# 中文

1. 项目地址:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example
2. 模块:[spring-cloud-2025.1.x/user-seata](https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/tree/main/spring-cloud-2025.1.x/user-seata)
3. 正常代码:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/tree/3c48b3b6ced0d22bdda4fa8a95eac24be30ef7a1
1. 流水线运行正常:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/actions/runs/23678140934
4. 异常代码:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/tree/4e15f1c727c6f2efaeb1d8a90993faf79929474b
1. 流水线运行异常:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/actions/runs/23678228215
2. 差异变更:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/commit/4e15f1c727c6f2efaeb1d8a90993faf79929474b
5. 复现流程:
1. 准备数据库:`sql` 文件夹
2. 启动 `nacos-bootstrap-3.x` Maven 模块
3. 启动 `seata-server-2.x` Maven 模块
4. 启动 `spring-cloud-2025.1.x/user-seata` Maven 模块
5. 运行 `spring-cloud-2025.1.x/user-seata/src/test/java/cn/com/xuxiaowei/user/controller/SeataRestController_2025_1_x_Tests.java` 测试类,断言失败
6. 查看 `spring-cloud-2025.1.x/user-seata` 日志,异常内容见下方

# English

1. Project address: https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example
2. Module: [spring-cloud-2025.1.x/user-seata](https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/tree/main/spring-cloud-2025.1.x/user-seata)
3. Normal code: https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/tree/3c48b3b6ced0d22bdda4fa8a95eac24be30ef7a1
1. Pipeline runs normally: https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/actions/runs/23678140934
4. Abnormal code: https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/tree/4e15f1c727c6f2efaeb1d8a90993faf79929474b
1. Pipeline runs abnormally: https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/actions/runs/23678228215
2. Difference changes: https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example/commit/4e15f1c727c6f2efaeb1d8a90993faf79929474b
5. Steps to reproduce:
1. Prepare the database: `sql` folder
2. Start the `nacos-bootstrap-3.x` Maven module
3. Start the `seata-server-2.x` Maven module
4. Start the `spring-cloud-2025.1.x/user-seata` Maven module
5. Run the test class `spring-cloud-2025.1.x/user-seata/src/test/java/cn/com/xuxiaowei/user/controller/SeataRestController_2025_1_x_Tests.java`, the assertion fails
6. Check the logs of `spring-cloud-2025.1.x/user-seata`, the exception details are as follows

# 日志 / Log

```
2026-03-28T13:44:48.709+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-5] o.a.s.tm.api.DefaultGlobalTransaction : Begin new global transaction [172.25.25.24:8091:5657283976033611781]
2026-03-28T13:44:48.709+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-5] c.c.x.u.controller.SeataRestController : 分布式事务 TX_XID: 172.25.25.24:8091:5657283976033611781
2026-03-28T13:44:48.713+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-6] c.c.x.u.c.AccountRestController : 分布式事务 TX_XID: 172.25.25.24:8091:5657283976033611781
2026-03-28T13:44:48.719+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-6] o.a.seata.rm.AbstractResourceManager : branch register success, xid:172.25.25.24:8091:5657283976033611781, branchId:5657283976033611782, lockKeys:account_tbl:1
2026-03-28T13:44:48.719+08:00 ERROR 91967 --- [user-seata] [nio-5016-exec-6] o.a.seata.rm.datasource.ConnectionProxy : process connectionProxy commit error: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder

java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder
at org.apache.seata.rm.datasource.undo.UndoLogParserFactory.getInstance(UndoLogParserFactory.java:60) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.undo.AbstractUndoLogManager.flushUndoLogs(AbstractUndoLogManager.java:280) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:254) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.doCommit(ConnectionProxy.java:229) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.lambda$commit$0(ConnectionProxy.java:188) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.execute(ConnectionProxy.java:357) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.commit(ConnectionProxy.java:187) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.lambda$executeAutoCommitTrue$0(AbstractDMLBaseExecutor.java:152) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.doRetryOnLockConflict(ConnectionProxy.java:369) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor$LockRetryPolicy.execute(AbstractDMLBaseExecutor.java:194) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.executeAutoCommitTrue(AbstractDMLBaseExecutor.java:150) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.doExecute(AbstractDMLBaseExecutor.java:84) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.BaseTransactionalExecutor.execute(BaseTransactionalExecutor.java:131) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:176) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:63) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:66) ~[seata-all-2.6.0.jar:2.6.0]
at org.springframework.jdbc.core.JdbcTemplate.lambda$update$0(JdbcTemplate.java:971) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:670) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:966) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1010) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1020) ~[spring-jdbc-7.0.6.jar:7.0.6]
at cn.com.xuxiaowei.user.service.impl.AccountServiceImpl.money(AccountServiceImpl.java:39) ~[classes/:na]
at cn.com.xuxiaowei.user.controller.AccountRestController.money(AccountRestController.java:32) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.20.jar:11.0.20]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1779) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.lang.ExceptionInInitializerError: Exception org.apache.seata.common.loader.EnhancedServiceNotFoundException: not found service provider for : org.apache.seata.rm.datasource.undo.UndoLogParser [in thread "http-nio-5016-exec-2"]

2026-03-28T13:44:48.728+08:00 ERROR 91967 --- [user-seata] [nio-5016-exec-6] o.a.s.r.d.exec.AbstractDMLBaseExecutor : execute executeAutoCommitTrue error:java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder

java.sql.SQLException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder
at org.apache.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:259) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.doCommit(ConnectionProxy.java:229) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.lambda$commit$0(ConnectionProxy.java:188) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.execute(ConnectionProxy.java:357) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.commit(ConnectionProxy.java:187) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.lambda$executeAutoCommitTrue$0(AbstractDMLBaseExecutor.java:152) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.doRetryOnLockConflict(ConnectionProxy.java:369) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor$LockRetryPolicy.execute(AbstractDMLBaseExecutor.java:194) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.executeAutoCommitTrue(AbstractDMLBaseExecutor.java:150) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.doExecute(AbstractDMLBaseExecutor.java:84) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.BaseTransactionalExecutor.execute(BaseTransactionalExecutor.java:131) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:176) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:63) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:66) ~[seata-all-2.6.0.jar:2.6.0]
at org.springframework.jdbc.core.JdbcTemplate.lambda$update$0(JdbcTemplate.java:971) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:670) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:966) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1010) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1020) ~[spring-jdbc-7.0.6.jar:7.0.6]
at cn.com.xuxiaowei.user.service.impl.AccountServiceImpl.money(AccountServiceImpl.java:39) ~[classes/:na]
at cn.com.xuxiaowei.user.controller.AccountRestController.money(AccountRestController.java:32) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.20.jar:11.0.20]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1779) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder
at org.apache.seata.rm.datasource.undo.UndoLogParserFactory.getInstance(UndoLogParserFactory.java:60) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.undo.AbstractUndoLogManager.flushUndoLogs(AbstractUndoLogManager.java:280) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:254) ~[seata-all-2.6.0.jar:2.6.0]
... 65 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: Exception org.apache.seata.common.loader.EnhancedServiceNotFoundException: not found service provider for : org.apache.seata.rm.datasource.undo.UndoLogParser [in thread "http-nio-5016-exec-2"]

2026-03-28T13:44:48.729+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-5] o.a.s.tm.api.DefaultGlobalTransaction : transaction 172.25.25.24:8091:5657283976033611781 will be rollback
2026-03-28T13:44:48.730+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-5] o.a.s.tm.api.DefaultGlobalTransaction : transaction end, xid = 172.25.25.24:8091:5657283976033611781
2026-03-28T13:44:48.730+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-5] o.a.s.tm.api.DefaultGlobalTransaction : [172.25.25.24:8091:5657283976033611781] rollback status: Rollbacked
2026-03-28T13:44:48.748+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-7] o.a.s.tm.api.DefaultGlobalTransaction : Begin new global transaction [172.25.25.24:8091:5657283976033611783]
2026-03-28T13:44:48.748+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-7] c.c.x.u.controller.SeataRestController : 分布式事务 TX_XID: 172.25.25.24:8091:5657283976033611783
2026-03-28T13:44:48.750+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-8] c.c.x.u.c.AccountRestController : 分布式事务 TX_XID: 172.25.25.24:8091:5657283976033611783
2026-03-28T13:44:48.756+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-8] o.a.seata.rm.AbstractResourceManager : branch register success, xid:172.25.25.24:8091:5657283976033611783, branchId:5657283976033611784, lockKeys:account_tbl:1
2026-03-28T13:44:48.756+08:00 ERROR 91967 --- [user-seata] [nio-5016-exec-8] o.a.seata.rm.datasource.ConnectionProxy : process connectionProxy commit error: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder

java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder
at org.apache.seata.rm.datasource.undo.UndoLogParserFactory.getInstance(UndoLogParserFactory.java:60) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.undo.AbstractUndoLogManager.flushUndoLogs(AbstractUndoLogManager.java:280) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:254) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.doCommit(ConnectionProxy.java:229) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.lambda$commit$0(ConnectionProxy.java:188) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.execute(ConnectionProxy.java:357) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.commit(ConnectionProxy.java:187) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.lambda$executeAutoCommitTrue$0(AbstractDMLBaseExecutor.java:152) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.doRetryOnLockConflict(ConnectionProxy.java:369) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor$LockRetryPolicy.execute(AbstractDMLBaseExecutor.java:194) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.executeAutoCommitTrue(AbstractDMLBaseExecutor.java:150) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.doExecute(AbstractDMLBaseExecutor.java:84) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.BaseTransactionalExecutor.execute(BaseTransactionalExecutor.java:131) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:176) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:63) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:66) ~[seata-all-2.6.0.jar:2.6.0]
at org.springframework.jdbc.core.JdbcTemplate.lambda$update$0(JdbcTemplate.java:971) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:670) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:966) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1010) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1020) ~[spring-jdbc-7.0.6.jar:7.0.6]
at cn.com.xuxiaowei.user.service.impl.AccountServiceImpl.money(AccountServiceImpl.java:39) ~[classes/:na]
at cn.com.xuxiaowei.user.controller.AccountRestController.money(AccountRestController.java:32) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.20.jar:11.0.20]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1779) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.lang.ExceptionInInitializerError: Exception org.apache.seata.common.loader.EnhancedServiceNotFoundException: not found service provider for : org.apache.seata.rm.datasource.undo.UndoLogParser [in thread "http-nio-5016-exec-2"]

2026-03-28T13:44:48.765+08:00 ERROR 91967 --- [user-seata] [nio-5016-exec-8] o.a.s.r.d.exec.AbstractDMLBaseExecutor : execute executeAutoCommitTrue error:java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder

java.sql.SQLException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder
at org.apache.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:259) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.doCommit(ConnectionProxy.java:229) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.lambda$commit$0(ConnectionProxy.java:188) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.execute(ConnectionProxy.java:357) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.commit(ConnectionProxy.java:187) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.lambda$executeAutoCommitTrue$0(AbstractDMLBaseExecutor.java:152) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy$LockRetryPolicy.doRetryOnLockConflict(ConnectionProxy.java:369) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor$LockRetryPolicy.execute(AbstractDMLBaseExecutor.java:194) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.executeAutoCommitTrue(AbstractDMLBaseExecutor.java:150) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.AbstractDMLBaseExecutor.doExecute(AbstractDMLBaseExecutor.java:84) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.BaseTransactionalExecutor.execute(BaseTransactionalExecutor.java:131) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:176) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.exec.ExecuteTemplate.execute(ExecuteTemplate.java:63) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.PreparedStatementProxy.executeUpdate(PreparedStatementProxy.java:66) ~[seata-all-2.6.0.jar:2.6.0]
at org.springframework.jdbc.core.JdbcTemplate.lambda$update$0(JdbcTemplate.java:971) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:670) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:966) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1010) ~[spring-jdbc-7.0.6.jar:7.0.6]
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1020) ~[spring-jdbc-7.0.6.jar:7.0.6]
at cn.com.xuxiaowei.user.service.impl.AccountServiceImpl.money(AccountServiceImpl.java:39) ~[classes/:na]
at cn.com.xuxiaowei.user.controller.AccountRestController.money(AccountRestController.java:32) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:252) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:184) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) ~[spring-webmvc-7.0.6.jar:7.0.6]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) ~[spring-webmvc-7.0.6.jar:7.0.6]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710) ~[tomcat-embed-core-11.0.20.jar:6.1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:128) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-11.0.20.jar:11.0.20]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) ~[spring-web-7.0.6.jar:7.0.6]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-7.0.6.jar:7.0.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:107) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1779) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:946) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:480) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:57) ~[tomcat-embed-core-11.0.20.jar:11.0.20]
at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.seata.rm.datasource.undo.UndoLogParserFactory$SingletonHolder
at org.apache.seata.rm.datasource.undo.UndoLogParserFactory.getInstance(UndoLogParserFactory.java:60) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.undo.AbstractUndoLogManager.flushUndoLogs(AbstractUndoLogManager.java:280) ~[seata-all-2.6.0.jar:2.6.0]
at org.apache.seata.rm.datasource.ConnectionProxy.processGlobalTransactionCommit(ConnectionProxy.java:254) ~[seata-all-2.6.0.jar:2.6.0]
... 65 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: Exception org.apache.seata.common.loader.EnhancedServiceNotFoundException: not found service provider for : org.apache.seata.rm.datasource.undo.UndoLogParser [in thread "http-nio-5016-exec-2"]

2026-03-28T13:44:48.766+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-7] o.a.s.tm.api.DefaultGlobalTransaction : transaction 172.25.25.24:8091:5657283976033611783 will be rollback
2026-03-28T13:44:48.767+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-7] o.a.s.tm.api.DefaultGlobalTransaction : transaction end, xid = 172.25.25.24:8091:5657283976033611783
2026-03-28T13:44:48.767+08:00 INFO 91967 --- [user-seata] [nio-5016-exec-7] o.a.s.tm.api.DefaultGlobalTransaction : [172.25.25.24:8091:5657283976033611783] rollback status: Rollbacked
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.