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怎么解决?