Skip to content

Spring Cloud Alibaba 2025.1.0.1-SNAPSHOT Seata NoClassDefFoundError UndoLogParserFactory$SingletonHolder #4289

@xuxiaowei-com-cn

Description

@xuxiaowei-com-cn

中文

  1. 项目地址:https://github.com/xuxiaowei-com-cn/spring-cloud-alibaba-example
  2. 模块: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. 差异变更:xuxiaowei-com-cn/spring-cloud-alibaba-example@4e15f1c
  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
  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: xuxiaowei-com-cn/spring-cloud-alibaba-example@4e15f1c
  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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions