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

使用Java 17构建Spring Boot 2.7.12项目遇JAXB类找不到错误

解决Spring Boot 2.7.x + Java 17 下JAXB类找不到的问题

你的问题出在依赖的命名空间不匹配:Spring Boot 2.7.x 仍基于JEE的javax.xml.bind命名空间,而你添加的是Jakarta EE 9+版本的jakarta.xml.bind依赖,两者包路径完全不同,因此无法解决javax/xml/bind/JAXBException的缺失问题。

正确的依赖配置

直接添加javax命名空间的JAXB相关依赖,替换你当前的Jakarta依赖:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.1</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>

或者更简便的方式,使用Spring Boot官方提供的starter,它会自动适配Spring Boot 2.7.x的版本:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jaxb</artifactId>
</dependency>

关键说明

  • Spring Boot 3.x及以上版本才全面切换到Jakarta EE的jakarta.*命名空间,而2.7.x属于过渡版本,仍依赖传统的javax.*包。
  • 若项目中存在其他依赖引入了Jakarta版本的JAXB,需通过<exclusions>排除冲突,确保javax版本的依赖被优先加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:57:19