ClassNotFoundException: com.auth0.jwt.exceptions.JWTCreationException с DocuSignApi Java SDK

Я пытаюсь реализовать некоторые базовые функции с помощью новейшего DocuSignApi для 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 Вики:

  <dependency>
    <groupId>com.docusign</groupId>
    <artifactId>docusign-esign-java</artifactId>
    <version>2.6.2</version>
  </dependency>

Теперь я также использую архетип Maven, который включает в себя массу других 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 Вики, такова:

org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.2

Я подозреваю, что моя ошибка может иметь какое-то отношение к конфликту версий между JWT 2.2.0 в моем архетипе и требуемой версией 1.0.2 от DocuSign.

Мои вопросы

  1. Действительно ли моя ошибка вызвана конфликтом версий с jar-файлом JWT?
  2. Если да, то как лучше всего решить эту проблему? Может ли DocuSignApi работать с более новой версией JWT, как у меня?

Спасибо за уделенное время!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
971
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема здесь в том, что конфликтующие версии java-jwt jar. В моем проекте используется версия 2.2.0, но для версии 2.6.2 Java DocuSign API требуется зависимость 3.2.0.

В

org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.2

dependency, которую я перечислил выше, было неверным термином ... это была не конфликтующая банка.

Поскольку в настоящее время у меня нет возможности перейти на java-jwt 3.2.0 jar, я вынужден понизить версию Java DocuSign API до версии 2.2.1, где отсутствует зависимость от java-jwt.

Надеюсь, кто-то еще может извлечь выгоду из довольно простой ошибки, которую я сделал здесь.

Другие вопросы по теме