исключение bean-компонента cassandraCluster при запуске Spring Boot Application - PullRequest
0 голосов
/ 12 марта 2020

Я получаю следующее исключение при запуске Spring Boot Application. Версия Spring Boot: 2.1.13 Версия Spring Framework: 5.1.14

Исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем «cassandraCluster», определенного в пути к классу ресурс [org / springframework / boot / autoconfigure / cassandra / CassandraAutoConfiguration.class]: не удалось создать экземпляр компонента с помощью метода фабрики; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [com.datastax.driver.core.Cluster]: фабричный метод 'cassandraCluster' вызвал исключение; вложенным исключением является java .lang.ExceptionInInitializerError в org.springframework.beans.factory.support.ConstructorResolver.instantiate (ConstructorResolver. java: 627) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14 .RELEASE] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver. java: 456) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.spring .beans.factory.support.AbstractAutowireCapableBeanFactory. AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory. java: 1159) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.ableanBean 1019 *: 555) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] на org.sp ringframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory. java: 515) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.spring .AbstractBeanFactory.lambda $ doGetBean $ 0 (AbstractBeanFactory. java: 320) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBgetBergistry (DefaultSingletonBeanRegistry. java: 222) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory. java: 318) ~ [spring-beans-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory. java: 199) ~ [spring-beans -5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory. java: 847) ~ [spring-beans-5.1.14.RELE .jar: 5.1.14.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext. java: 877) ~ [spring-context-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.context.support.AbstractApplicationContext.refre sh (AbstractApplicationContext. java: 549) ~ [spring-context-5.1.14.RELEASE.jar: 5.1.14.RELEASE] в org.springframework.boot .web.servlet.context.ServletWebServerApplicationContext.refre sh (ServletWebServerApplicationContext. java: 141) ~ [spring-boot-2.1.13.RELEASE.jar: 2.1.13.RELEASE] в org.springframework.bo. .refre sh (SpringApplication. java: 744) ~ [spring-boot-2.1.13.RELEASE.jar: 2.1.13.RELEASE] в org.springframework.boot.SpringApplication.refreshContext (SpringApplication. java : 391) ~ [spring-boot-2.1.13.RELEASE.jar: 2.1.13.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication. java: 312) ~ [spring-boot-2.1. 13.RELEASE.jar: 2.1.13.RELEASE]

Вызвано От: Причина: com.datastax.driver.core.exceptions.DriverInternalError: Обнаружена несовместимая версия Guava в пути к классам. Вам нужно 16.0.1 или выше. в com.datastax.driver.core.GuavaCompatibility.selectImplementation (GuavaCompatibility. java: 191) ~ [cassandra-driver-core-3.6.0.jar: na] в com.datastax.driver.core.GuavaCompatibility. (GuavaCompatibility. java: 59) ~ [cassandra-driver-core- 3.6.0.jar: na] ... 30 общих фреймов опущено

Но у меня есть путь к java guava-19.0 в classpath.

С Spring Boot 2.1 я не сталкивался с этой проблемой. 6 и Spring Framework 5.1.5.

1 Ответ

0 голосов
/ 12 марта 2020

Похоже, у вас есть две версии Guava на вашем пути к классам. Некоторые другие пакеты могут тянуть другую версию. Вы должны закрепить версию Guava в разделе <dependencyManagement> в Maven (я полагаю, вы используете Maven):

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>19.0</version>
    </dependency>
 </dependencies>
</dependencyManagement>

или исключить зависимость Guava из другой зависимости, которая ее тоже тянет.

Подсказка на будущее: рассмотрите возможность добавления подключаемого модуля Maven Enforcer в свой проект и проверьте наличие сходимости зависимостей, чтобы проверить наличие подобных проблем:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.4.1</version>
            <executions>
                <execution>
                    <id>enforce</id>
                    <configuration>
                        <rules>
                            <DependencyConvergence/>
                        </rules>
                    </configuration>
                    <goals>
                        <goal>enforce</goal>
                    </goals>
                    <phase>validate</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
...
</build>
...