gpt4 book ai didi

java - 无法使用 CassandraConfiguration 连接到 cassandra

转载 作者:行者123 更新时间:2023-11-30 01:48:19 25 4
gpt4 key购买 nike

我按照 CassandraOperations 将记录插入到 cassandra 中。由于我需要插入一行的 TTL 值,所以我选择了这种方式。 CrudRespository不具备存储TTL值的功能。

下面是 Cassandra 配置类

@Override
@Bean
public CassandraClusterFactoryBean cluster() {
final CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints(cassandra_contactPoints);
cluster.setPort(Integer.parseInt(cassandra_port));
cluster.setUsername(cassandra_username);
cluster.setPassword(cassandra_password);
LOGGER.info("Cluster created with contact points [" + cassandra_port + "] " + "& port ["
+ Integer.parseInt(cassandra_port) + "].");
return cluster;
}

@Override
@Bean
public CassandraMappingContext cassandraMapping() throws ClassNotFoundException {
return new BasicCassandraMappingContext();
}

@Override
protected String getKeyspaceName() {
return cassandra_keyspaceName;
}

当我启动应用程序时,它抛出以下异常

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.cassandra.core.CassandraAdminTemplate]: Factory method 'cassandraTemplate' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [com/sample/session/config/CassandraConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.cassandra.SessionFactory]: Factory method 'sessionFactory' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [com/sample/session/config/CassandraConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporter 
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.cassandra.SessionFactory]: Factory method 'sessionFactory' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [com/sample/session/config/CassandraConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporter
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [com/sample/session/config/CassandraConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporter
Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.JmxReporter

最佳答案

这记录在Java driver's documentation中- 您需要创建一个没有 JMX 指标报告的集群对象 - 这是通过将调用 .withoutJMXReporting() 添加到集群构建器来完成的,或者添加 Maven 依赖项:

<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jmx</artifactId>
<version>4.0.2</version>
</dependency>

关于java - 无法使用 CassandraConfiguration 连接到 cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57002356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com