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

升级Spring Boot 3.2.2与Java 21后Dropbox API出现LinkageError问题

Spring Boot 3.2.2 + Java 21升级后Dropbox API类加载冲突解决方案

问题根源

Spring Boot 3.x基于Jakarta EE 9+,所有原javax.*命名空间的API已迁移至jakarta.*,而你使用的resteasy-jaxrs 3.15.6和dropbox-sign 1.2.0仍依赖旧的Java EE(javax.ws.rs)API,导致类加载器加载同一逻辑类时出现命名空间/类加载器冲突,触发LinkageError(看似同一个类互相转换,实际是不同类加载器加载的同名类)。

解决步骤

1. 替换Resteasy为Jakarta兼容版本

移除旧的resteasy-jaxrs,改用支持Jakarta EE的Resteasy核心依赖,版本需匹配Spring Boot 3.2.x(推荐6.2.x+,支持Java 17/21):

<!-- 移除旧依赖 -->
<!-- <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>3.15.6.FINAL</version>
</dependency> -->

<!-- 添加Jakarta版本的Resteasy依赖 -->
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-core</artifactId>
    <version>6.2.9.Final</version>
</dependency>
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>6.2.9.Final</version>
</dependency>

或者直接使用Spring Boot官方starter,自动管理版本:

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

2. 升级Dropbox Sign SDK至Jakarta兼容版本

dropbox-sign 1.2.0版本过旧,不支持Jakarta EE,需升级至最新兼容版本(当前最新为7.1.0):

<dependency>
    <groupId>com.dropbox.sign</groupId>
    <artifactId>dropbox-sign</artifactId>
    <version>7.1.0</version>
</dependency>

3. 强制排除旧的javax依赖(若仍有冲突)

若升级后仍存在依赖冲突,执行mvn dependency:tree排查所有javax.ws.rs相关依赖,手动排除并替换为Jakarta API:

<dependency>
    <groupId>com.dropbox.sign</groupId>
    <artifactId>dropbox-sign</artifactId>
    <version>7.1.0</version>
    <exclusions>
        <exclusion>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- 添加Jakarta EE标准API -->
<dependency>
    <groupId>jakarta.ws.rs</groupId>
    <artifactId>jakarta.ws.rs-api</artifactId>
    <version>3.1.0</version>
</dependency>

4. 验证依赖树

执行mvn dependency:tree命令,确保输出中无javax.ws.rs相关依赖,所有JAX-RS类均来自jakarta.ws.rs命名空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 03:20:29