You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新版本Infinispan是否采用Jakarta EE API?测试遇javax类缺失问题

解决Infinispan 14+中javax.transaction.TransactionManager类未找到异常

问题原因

Infinispan 14虽完成Java EE到Jakarta EE的迁移,将所有javax API替换为Jakarta API,但部分场景下会因事务API依赖缺失或依赖版本不匹配,导致初始化配置类时找不到javax.transaction.TransactionManager类。

解决方案

方案1:适配Jakarta EE环境

若项目已迁移至Jakarta EE,直接引入Jakarta事务API依赖:

Maven配置

<dependency>
    <groupId>jakarta.transaction</groupId>
    <artifactId>jakarta.transaction-api</artifactId>
    <version>2.0.1</version> <!-- 适配Jakarta EE 9/10,与Infinispan 14兼容 -->
</dependency>

<!-- 确保Infinispan核心依赖版本正确 -->
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-core</artifactId>
    <version>14.0.0.Dev03</version>
</dependency>

Gradle配置

implementation 'jakarta.transaction:jakarta.transaction-api:2.0.1'
implementation 'org.infinispan:infinispan-core:14.0.0.Dev03'

方案2:兼容旧Java EE环境

若项目需保留Java EE环境,引入传统javax事务API依赖:

Maven配置

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>

Gradle配置

implementation 'javax.transaction:javax.transaction-api:1.3'

方案3:排查依赖冲突

若上述方案无效,检查项目中是否存在javax与Jakarta事务API的依赖冲突:

  • 用Maven的mvn dependency:tree或Gradle的./gradlew dependencies命令查看依赖树
  • 排除冲突依赖,确保仅保留一套事务API(全javax或全Jakarta)

额外说明

Infinispan 14默认优先使用Jakarta EE规范,若运行环境(如应用服务器)已提供事务API,可将依赖的scope设为provided,避免重复引入。

内容的提问来源于stack exchange,提问作者ChunChong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:20:47