[英]Unable to connect to cassandra using CassandraConfiguration
I have followed the CassandraOperations for inserting the records into cassandra. 我遵循了CassandraOperations将记录插入cassandra的操作。 Since I need to insert TTL value for a row I have opted this way.
由于我需要在一行中插入TTL值,因此我选择了这种方式。 CrudRespository cannot have the functionality of storing TTL value.
CrudRespository无法具有存储TTL值的功能。
Below is the Cassandra Config Class 下面是Cassandra Config类
@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;
}
When I start the application it is throwing the below exceptions 当我启动应用程序时,它抛出以下异常
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
This is documented in Java driver's documentation - you either need to create a cluster object without JMX metrics reporting - this is done by adding call .withoutJMXReporting()
to cluster builder, or add the Maven dependency: 这在Java驱动程序的文档中进行了说明 -您可能需要创建不包含JMX度量标准报告的集群对象-这可以通过将调用
.withoutJMXReporting()
添加到集群构建器中来完成,或者添加Maven依赖项来完成:
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jmx</artifactId>
<version>4.0.2</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.