Spring Boot 3.2.5集成Infinispan时javax.transaction缺失错误排查
解决方案
Infinispan 14.x已经完成了Jakarta API的迁移,你遇到的问题是因为引入了针对javax的Infinispan依赖,而非Jakarta版本的。以下是具体解决步骤:
替换Infinispan Starter依赖
把POM中原来的infinispan-spring-boot-starter替换为Jakarta专属的starter:<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-spring-boot-starter-jakarta</artifactId> <version>14.0.32.Final</version> </dependency>如果你直接引入Infinispan核心库,也要换成Jakarta版本:
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-core-jakarta</artifactId> <version>14.0.32.Final</version> </dependency>排除传递的javax依赖
检查POM中其他依赖是否引入了javax.transaction-api,如果有,通过exclusion标签排除:<dependency> <groupId>[问题依赖的groupId]</groupId> <artifactId>[问题依赖的artifactId]</artifactId> <exclusions> <exclusion> <groupId>javax.transaction</groupId> <artifactId>javax.transaction-api</artifactId> </exclusion> </exclusions> </dependency>修正配置类的API导入
确保你的CacheConfig类中使用的是Jakarta事务API,比如:import jakarta.transaction.Transactional; // 而非 import javax.transaction.Transactional;
完成以上步骤后,应用会使用Jakarta版本的事务API,无需添加任何javax相关依赖即可解决NoClassDefFoundError问题。
内容的提问来源于stack exchange,提问作者TSSK
相关产品推荐
相关产品推荐

