首页 > 解决方案 > 使用 Springboot 通过 CassandraConfig 获取指标异常

问题描述

我在应用程序启动期间遇到以下异常。@EnableCassandraRepositoriesApplication班级的一部分。我正在使用弹簧数据卡桑德拉。我尝试从不同的依赖项中排除指标,但它们都不起作用。

下面是我使用的错误和配置代码以及依赖项。

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [com/lte/assessmentanalytics/config/CassandraConfig.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/Metric

CassandraConfig

    @Configuration
    public class CassandraConfig extends AbstractCassandraConfiguration {
        @Value("${cassandra.contactpoints}")
        private String contactPoints;
        @Value("${cassandra.port}")
        private int port;
        @Value("${cassandra.keyspace}")
        private String keySpace;
        @Value("${cassandra.basePackages}")
        private String basePackages;

        @Autowired
        private Environment environment;

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

        @Override
        @Bean
        public CassandraClusterFactoryBean cluster() {
            final CassandraClusterFactoryBean cluster = new CassandraClusterFactoryBean();
            cluster.setContactPoints(contactPoints);
            cluster.setPort(port);
            return cluster;
        }

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

依赖项

 <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-cassandra</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>com.datastax.cassandra</groupId>
                        <artifactId>cassandra-driver-core</artifactId>
                    </exclusion>
                        <exclusion>
                            <groupId>io.dropwizard.metrics</groupId>
                            <artifactId>metrics-core</artifactId>
                        </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.datastax.cassandra</groupId>
                <artifactId>cassandra-driver-core</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>io.dropwizard.metrics</groupId>
                        <artifactId>metrics-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.datastax.cassandra</groupId>
                <artifactId>cassandra-driver-mapping</artifactId>
            </dependency>

标签: spring-bootcassandraspring-data-cassandra

解决方案


它似乎缺少 codahale 指标。尝试将其添加到您的 pom 中:

<dependency>
     <groupId>com.codahale.metrics</groupId>
     <artifactId>metrics-core</artifactId>
     <version>3.0.2</version>
</dependency>

推荐阅读