#java #spring #apache-spark #kotlin #google-cloud-storage
# #java #spring #apache-spark #котлин #google-облачное хранилище
Вопрос:
Сталкиваюсь с этим исключением каждый раз, когда запускаю свое приложение с установленными GoogleCloudStorage и Spark:
Конструктор вызвал исключение; вложенным исключением является java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory
Облачное хранилище Google
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.17.0</version>
Apache Spark
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>2.4.0</version>
</dependency>
(Если я удалю любой из них, приложение будет работать нормально)
Я пробовал:
- установка разных версий обоих
- Исключение Джексона из com.fasterxml.jackson.core и установка зависимостей по отдельности
Что еще это может быть?
Ответ №1:
org.codehaus.jackson.JsonFactory
из старой версии Jackson. Джексон использует com.fasterxml
сейчас. Таким образом, у вас есть некоторая зависимость в зависимости от более старой версии, но в то же время вы добавляете более новую версию. Вам придется либо 1) использовать более старую версию, которую требуют некоторые из ваших зависимостей, 2) обновить ваши зависимости до более новой версии, которая использует более новый jackson (если возможно), либо 3) (дополнительно) изолировать ваши зависимости с помощью некоторых средств (загружая их в отдельные загрузчики классов / модули Java 9, дляэкземпляр).
mvn dependency:tree
даст вам больше информации, чтобы вы могли узнать, каковы проблемные зависимости.