Spring 启动 Cassandra "Error creating bean with name 'session'"
Spring boot Cassandra "Error creating bean with name 'session'"
我对简单的 Spring 启动应用程序有疑问。我正在使用:
- spring-boot-starter-parent
- spring-boot-starter-data-cassandra
- Cassandra 3.11.3(CentOS 7 服务器和本地 Mac OS)(通过 cqlsh 查询)
我遵循了 https://www.baeldung.com/spring-data-cassandra-tutorial 的简单指南,无论 Cassandra 是 运行 还是不是 运行 我
启动时出现一个错误:
2018-11-25 09:12:34.581 ERROR 83213 --- [main] o.s.boot.SpringApplication: Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [some/project/path/CassandraConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporte
我的配置class:
@Configuration
@EnableCassandraRepositories(basePackages = "packagename")
public class CassandraConfig extends AbstractCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return "test";
}
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints("127.0.0.1");
cluster.setPort(9042);
return cluster;
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.CREATE_IF_NOT_EXISTS;
}
@Override
public String[] getEntityBasePackages() {
return new String[]{"packagename"};
}
}
实体:
@Table
public class Image implements Serializable {
@PrimaryKeyColumn(
name = "key",
ordinal = 0,
type = PrimaryKeyType.PARTITIONED)
private UUID id;
@Column
private Blob object;
}
存储库:
@Repository
public interface ImagesRepository extends CrudRepository<Image, UUID> {
}
Cassandra 结构:
CREATE TABLE images (
key text,
object blob,
PRIMARY KEY (key)
);
另外 https://github.com/springframeworkguru/spring-boot-cassandra-example 也给我创建 bean 的错误。
您缺少 Dropwizard 依赖项:
You need the metrics-core library as a dependency:
<dependencies>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${metrics.version}</version>
</dependency>
Note
Make sure you have a metrics.version property declared in your POM with the current version, which is 3.1.0.
我对简单的 Spring 启动应用程序有疑问。我正在使用:
- spring-boot-starter-parent
- spring-boot-starter-data-cassandra
- Cassandra 3.11.3(CentOS 7 服务器和本地 Mac OS)(通过 cqlsh 查询)
我遵循了 https://www.baeldung.com/spring-data-cassandra-tutorial 的简单指南,无论 Cassandra 是 运行 还是不是 运行 我 启动时出现一个错误:
2018-11-25 09:12:34.581 ERROR 83213 --- [main] o.s.boot.SpringApplication: Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [some/project/path/CassandraConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/JmxReporte
我的配置class:
@Configuration
@EnableCassandraRepositories(basePackages = "packagename")
public class CassandraConfig extends AbstractCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return "test";
}
@Bean
public CassandraClusterFactoryBean cluster() {
CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
cluster.setContactPoints("127.0.0.1");
cluster.setPort(9042);
return cluster;
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.CREATE_IF_NOT_EXISTS;
}
@Override
public String[] getEntityBasePackages() {
return new String[]{"packagename"};
}
}
实体:
@Table
public class Image implements Serializable {
@PrimaryKeyColumn(
name = "key",
ordinal = 0,
type = PrimaryKeyType.PARTITIONED)
private UUID id;
@Column
private Blob object;
}
存储库:
@Repository
public interface ImagesRepository extends CrudRepository<Image, UUID> {
}
Cassandra 结构:
CREATE TABLE images (
key text,
object blob,
PRIMARY KEY (key)
);
另外 https://github.com/springframeworkguru/spring-boot-cassandra-example 也给我创建 bean 的错误。
您缺少 Dropwizard 依赖项:
You need the metrics-core library as a dependency:
<dependencies> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-core</artifactId> <version>${metrics.version}</version> </dependency>
Note
Make sure you have a metrics.version property declared in your POM with the current version, which is 3.1.0.