Кассандровый кластер является нулевым после создания CassandraClusterFactoryBean - PullRequest
0 голосов
/ 07 марта 2020

Я попытался создать настроенный 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
...