Я разрабатываю микросервис на основе весеннего облачного проекта (упаковка maven). Я использую cassandra на образе докера в проекте. Я получаю ошибку в CassandraConfiguration. Я импортировал «import org.springframework.data.cassandra.config.CassandraClusterFactoryBean;» в CassandraConfiguration, но я ошибся. Сообщение об ошибке в интеллектуальной идее. Я попытался запустить этот проект на eclipse. У меня опять ошибка. Спасибо!
java: cannot find symbol
symbol: class Cassandra Cluster Factory Bean
location: class com.accountservice.springcloudmicroserviceaccount.Configuration.CassandraConfiguration
import org.springframework.data.cassandra.config.CassandraClusterFactoryBean;
and public CassandraClusterFactoryBean cluster(){
CassandraClusterFactoryBean cluster=super.cluster();
cluster.setUsername(username);
cluster.setPassword(password);
return cluster;
}
Я пытался сделать что-то pom.xml. Я искал решение на этом сайте, но снова получил ошибку. пом.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.accountservice</groupId>
<artifactId>springcloudmicroserviceaccount</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloudmicroserviceaccount</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
</dependency>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>19</source>
<target>19</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Хм. Похоже на старую проблему: stackoverflow.com/questions/71962997/…
Спасибо. сегодня не видел. Я искал в месте поиска stackoverflow. Я узнал, как использовать stackoverflow от вас.
CassandraClusterFactoryBean
был удален в 2019 году с переходом на драйвер Cassandra 4. Все подробности можно найти в исходном запросе на вытягивание на GitHub: https://github.com/spring-projects/spring-data-cassandra/pull/167
Критические изменения:
Удаление типов (без замены):
- […]
- CassandraCqlClusterFactoryBean
- […]
Сводка конфигурации
Драйвер 4 объединяет объекты Cluster и Session в один объект CqlSession, поэтому все API, связанные с кластером, были удалены. Конфигурация была пересмотрена в больших частях, удалив большинство элементов конфигурации, которые были перемещены в DriverConfigLoader, который в основном основан на файлах. Это означает, что SocketOptions, AddressTranslator и многие другие параметры теперь настраиваются через другие средства.
Дальнейшая информация:
- https://docs.datastax.com/ru/developer/java-driver/4.3/
- https://docs.datastax.com/en/developer/java-driver/4.3/upgrade_guide/
[выделено мной]
Дополнительная информация приведена в руководстве по обновлению:
Cluster
больше не существует; сеанс теперь является основным компонентом, инициализируемым за один шаг:CqlSession session = CqlSession.builder().build(); session.execute("...");
Спасибо . Я заглянул внутрь класса AbstractCassandraConfiguration. Затем я искал кластерный метод. cassandraSession теперь выполняет свой долг. Мне очень жаль. Большое спасибо. Я должен был решить эту ошибку. У меня сегодня голова остановилась. Решение; общедоступный метод CqlSessionFactoryBean cassandrasession(). импортировать org.springframework.data.cassandra.config.CqlSessionFactoryBean;
Спасибо за ваш комментарий. Я попытался импортировать org.springframework.data.cassandra.core.CassandraClusterFactoryBean , но все еще не решен.