У меня проблема с простым приложением Spring Boot.Я использую:
- spring-boot-starter-parent
- spring-boot-starter-data-cassandra
- Cassandra 3.11.3 (оба в CentOS7 сервер и локальная 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
Мой класс конфигурации:
@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> {
}
Структура Кассандры:
CREATE TABLE images (
key text,
object blob,
PRIMARY KEY (key)
);
Также https://github.com/springframeworkguru/spring-boot-cassandra-example также выдает ошибку при создании компонента.