我有一个Spring引导应用程序,想要添加。
从OauthCode/OauthToken开始获取authcode和auth令牌。我在gradle中添加了依赖项,但是docusign实例化失败了。
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
发布于 2022-11-11 16:49:14
这是Java的最新版本中引入的一个bug。版本3.18.0没有这个错误,所以现在的解决方法是使用最老的版本。一旦我们发布了解决这个问题的新版本,我将更新这个答案。
发布于 2022-12-02 16:35:37
现在是12/2/2022年,我可以确认3.21.0还存在这个问题。降级至3.18工程。
如果文档发布的文档被更新以反映这一点,那将是真的很好的。我花了一个小时在这上面追我的尾巴。
对于3.21.0和引导2.7.4 / java 11,ApiClient
实例化失败
ava.lang.ClassNotFoundException: javax.ws.rs.ext.ContextResolver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[na:na]
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) ~[na:na]
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) ~[na:na]
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) ~[na:na]
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
at com.docusign.esign.client.ApiClient.<init>(ApiClient.java:91) ~[docusign-esign-java-3.21.0.jar:na]
at com.docusign.esign.client.ApiClient.<init>(ApiClient.java:123) ~[docusign-esign-java-3.21.0.jar:na]
at com.myapp.Application.auth(Application.java:40) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.24.jar:5.3.24]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.24.jar:5.3.24]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.24.jar:5.3.24]
https://stackoverflow.com/questions/73974532
复制相似问题