ClassNotFoundException: com.auth0.jwt.exceptions.JWTCreationException 与 DocuSignApi Java SDK
Posted
技术标签:
【中文标题】ClassNotFoundException: com.auth0.jwt.exceptions.JWTCreationException 与 DocuSignApi Java SDK【英文标题】:ClassNotFoundException: com.auth0.jwt.exceptions.JWTCreationException with DocuSignApi Java SDK 【发布时间】:2019-03-02 16:29:27 【问题描述】:我正在尝试使用最新的 DocuSignApi for Java(版本 2.6.2)实现一些基本功能。我目前只是想让 JWT 授权流程正常工作。代码如下:
ApiClient apiClient = new ApiClient();
this.apiClient.configureJWTAuthorizationFlow(this.adminProperties.getRsaPublicKey(), this.adminProperties
.getRsaPrivateKey(), this.adminProperties.getoAuthBaseUrl(), this.adminProperties.getIntegratorKey(),
this.adminProperties.getImpersonatedUserGuid(), TOKEN_EXPIRATION_IN_SECONDS);
在上面的 `ApiClient.configureJWTAuthorizationFlow(...) 调用中,我收到以下运行时错误:
Caused by: java.lang.ClassNotFoundException: com.auth0.jwt.exceptions.JWTCreationException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
为了清楚起见,我没有收到任何编译错误。
我已将其添加到我的项目 pom 中,如 DocuSignApi Java Wiki 所示:
<dependency>
<groupId>com.docusign</groupId>
<artifactId>docusign-esign-java</artifactId>
<version>2.6.2</version>
</dependency>
现在我还使用了一个 Maven 原型,它引入了大量其他 jar,这些 jar 用于我公司的所有项目,并且是我的应用程序中其他功能所必需的。我可以看到我的有效 pom 正在拉入这个版本的 java-jwt 和 spring-security-jwt:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.0.8.RELEASE</version>
</dependency>
我还注意到DocuSignApi Java Wiki 上列出的依赖项之一是这样的:
org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.2
我怀疑我的错误可能与我的原型中的 JWT 2.2.0 与 DocuSign 所需的 1.0.2 版本之间的版本冲突有关。
我的问题是
-
我的错误确实是由与 JWT jar 的版本冲突引起的吗?
如果是这样,解决此问题的最佳方法是什么? DocuSignApi 可以像我一样与更新版本的 JWT 一起使用吗?
感谢您的宝贵时间!
【问题讨论】:
【参考方案1】:这里的问题最终是 java-jwt jar 的版本冲突。我的项目使用的是2.2.0版本,但是Java DocuSign API的2.6.2版本需要的依赖是3.2.0。
org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.2
我上面列出的依赖项是用词不当...这不是冲突的 jar。
由于我目前无法升级到 java-jwt 3.2.0 jar,因此我不得不将我的 Java DocuSign API 降级到 2.2.1,因为不存在对 java-jwt 的依赖。
希望其他人可以从我在这里犯的相当简单的错误中受益。
【讨论】:
以上是关于ClassNotFoundException: com.auth0.jwt.exceptions.JWTCreationException 与 DocuSignApi Java SDK的主要内容,如果未能解决你的问题,请参考以下文章
Could not resolve type alias 'map '. Cause: java.lang.ClassNotFoundException: Cannot find c
java.lang.ClassNotFoundException
Android ClassNotFoundException:在路径上找不到类:Dexpathlist
Maven - ClassNotFoundException:org.apache.commons.lang.StringUtils
加载 JDBC 驱动程序中的 classNotFoundException
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp怎么解决?