Я попытался создать настроенный CassandraClusterFactoryBean, поэтому позже создаю настроенный CassandraSessionFactoryBean для подключения к другому пространству клавиш. по какой-то причине созданный мной компонент-кластер всегда возвращает кластер как ноль, вот мой код:
@Bean
@Profile(LOCAL)
public CassandraClusterFactoryBean localCluster() {
final String contactPoints = "localhost";
final CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints(contactPoints);
cluster.setPort(9042);
cluster.setUsername("cassandra");
cluster.setPassword("cassandra");
cluster.setReconnectionPolicy(new ConstantReconnectionPolicy(5));
cluster.setRetryPolicy(FallthroughRetryPolicy.INSTANCE);
cluster.setSpeculativeExecutionPolicy(new ConstantSpeculativeExecutionPolicy(1, 5));
Assert.state(cluster.getObject() != null, "Cluster factory not initialized"); <-- it failed
return cluster;
}
позже, когда я создаю сессионный компонент, это не удалось, поскольку cluster.getObject () возвращает ноль;
@Profile(LOCAL)
@Bean("keyspaceASession")
public CassandraSessionFactoryBean localSession() {
final CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
session.setCluster(localCluster().getObject()); <-- failed here
session.setKeyspaceName(getKeyspaceName());
return session;
}
Я не могу понять, что не так с этим кодом, я использую:
spring-boot: 2.1.8.RELEASE
spring-data-cassandra-2.1.10.RELEASE
datastax dse's dse-java-driver-core version 2.3.0
dse-java-driver-mapping: 1.9.0
dse-java-driver-graph: 1.9.0