ClassNotFoundException: com.netflix.config.CachedDynamicIntProperty для запуска ленты SpringBoot 2

Существует SpringBoot 2.1.4.RELEASE приложение с зависимостью spring-cloud-starter-netflix-ribbon 2.1.1.RELEASE.

При попытке запустить тест интеграции spring (используя @SpringBootTest) во время запуска тестового приложения возникает такое исключение: Caused by: java.lang.ClassNotFoundException:com.netflix.config.CachedDynamicIntProperty

Облачные зависимости Maven, используемые в проекте:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
</parent>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

Файл тестовых свойств:

feign.hystrix.enabled=true eureka.client.enabled=false ribbon.eureka.enabled=false some-my-mocked-service.ribbon.listOfServers=localhost:${mocked.port}

Исключение:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.loadbalancer.ILoadBalancer]: Factory method 'ribbonLoadBalancer' threw exception; nested exception is java.lang.NoClassDefFoundError: Lcom/netflix/config/CachedDynamicIntProperty;
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622)

person Alex    schedule 15.05.2019    source источник
comment
Вы уверены, что это действительно полная трассировка стека?   -  person the hand of NOD    schedule 15.05.2019
comment
Нет, исходная трассировка стека намного длиннее, но я выделяю основную причину. Также эта часть может быть полезна: `Вызвано: org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'ribbonLoadBalancer', определенным в org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration: создание экземпляра bean-компонента с помощью фабричного метода не удалось; вложенное исключение ....//исключение из тела вопроса   -  person Alex    schedule 15.05.2019
comment
Хорошо, просто спросил, потому что иногда случается, что люди копируют не основную причину проблемы, а некоторые другие части трассировки стека. Это тем чаще, чем больше используется автопроводка :-)   -  person the hand of NOD    schedule 15.05.2019
comment
Возможно, вам нужна следующая зависимость <dependency> <groupId>com.netflix.archaius</groupId> <artifactId>archaius-core</artifactId> <version>0.1.4</version> </dependency>   -  person the hand of NOD    schedule 15.05.2019
comment
archaius-core не помог(   -  person Alex    schedule 15.05.2019
comment
Я думаю, поврежденная загрузка maven   -  person spencergibb    schedule 15.05.2019
comment
Вы можете попробовать очистить все и убедиться, что загрузка maven прошла успешно (проверьте файл jar в репозитории maven). Если это, конечно, не проблема, вопрос в том, правильно ли вы используете spring-boot-maven-plugin для создания файла jar? Не могли бы вы отредактировать свой вопрос и показать свою полную помпу? Потому что NoClassDefFoundError обычно означает, что что-то не так с вашим путем к классам.   -  person the hand of NOD    schedule 16.05.2019


Ответы (1)


Запустите mvn dependency:tree -Dverbose и проверьте дерево на конфликт версий — похоже, что артефакты spring-cloud-starter-openfeign и spring-cloud-starter-netflix-ribbon используют разные версии архей-ядро.

person Vitaly    schedule 10.10.2019