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类。
解决步骤
- 移除
build.gradle中手动添加的jakarta.ws.rs:jakarta.ws.rs-api:3.1.0依赖,DocuSign SDK会自动引入兼容的javax版本JAX-RS依赖。 - 重新执行
gradle clean build,确保依赖正确同步。 - 重启应用,重新实例化
ApiClient即可。
内容的提问来源于stack exchange,提问作者user20167608
相关产品推荐
相关产品推荐

