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

Spring Boot集成DocuSign时ApiClient实例化失败求助

Spring Boot集成DocuSign时ApiClient实例化失败问题

问题背景

Spring Boot 2.7.3应用集成DocuSign,计划通过OauthCode/OauthToken流程获取授权码和令牌,已在Gradle添加依赖,但实例化ApiClient时报错。

相关代码

build.gradle

plugins {
    id 'org.springframework.boot' version '2.7.3'
    id 'io.spring.dependency-management' version '1.0.13.RELEASE'
    id 'java'
}
                
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
    implementation 'com.docusign:docusign-esign-java:3.19.0'
    implementation 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
    implementation 'org.springdoc:springdoc-openapi-ui:1.6.11'
    implementation 'io.awspring.cloud:spring-cloud-starter-aws-secrets-manager-config:2.4.2'
              
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'

    annotationProcessor 'org.projectlombok:lombok'
                
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'
}

配置类代码

@Generated
@Configuration
public class BeansConfig {
    @Value("${ds.api.base.path1}")
    private String basePath1;

    @Value("${ds.api.auth.base.path2}")
    private String basePath2;
            
    @Bean
    ApiClient getApiClient() {
        ApiClient apiClient = new ApiClient(basePath1);
        apiClient.setOAuthBasePath(basePath2);
        return apiClient;
    }
}

异常信息

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.docusign.esign.client.ApiClient]: Factory method 'apiClient' threw exception;
nested exception is java.lang.NoClassDefFoundError: javax/ws/rs/ext/ContextResolver at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) 
~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
Caused by: java.lang.NoClassDefFoundError: javax/ws/rs/ext/ContextResolver

问题原因

DocuSign的docusign-esign-java:3.19.0依赖的是javax版本的JAX-RS API(包前缀为javax.ws.rs),但你手动引入了jakarta.ws.rs:jakarta.ws.rs-api:3.1.0,这是Jakarta EE规范下的版本,包前缀已改为jakarta.ws.rs,两者不兼容,导致运行时找不到javax.ws.rs.ext.ContextResolver类。

解决步骤

  1. 移除build.gradle中手动添加的jakarta.ws.rs:jakarta.ws.rs-api:3.1.0依赖,DocuSign SDK会自动引入兼容的javax版本JAX-RS依赖。
  2. 重新执行gradle clean build,确保依赖正确同步。
  3. 重启应用,重新实例化ApiClient即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:45:31