【问题标题】:Spring Data Cassandra ClassNotFoundExceptionSpring Data Cassandra ClassNotFoundException
【发布时间】:2020-10-31 14:24:33
【问题描述】:

启动 spring boot 应用程序时出现此错误 我的春季启动应用程序 Spring Boot 2.2.4 版 和 cassandra 版本 spring-data-cassandra 3.0.1.RELEASE

这是我的错误

Caused by: java.lang.ClassNotFoundException: org.springframework.data.convert.CustomConversions$ConverterConfiguration
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 113 common frames omitted

和我的配置类

 public class CassandraConfig {
    @Bean
    public CqlSessionFactoryBean session() {

        CqlSessionFactoryBean session = new CqlSessionFactoryBean();
        session.setContactPoints("localhost");
        session.setKeyspaceName("mykeyspace");
        session.setUsername("cassandra");
        session.setPassword("cassandra");
        session.setLocalDatacenter("dc1");
        return session;
    }

    @Bean
    public SessionFactoryFactoryBean sessionFactory(CqlSession session, CassandraConverter converter) {

        SessionFactoryFactoryBean sessionFactory = new SessionFactoryFactoryBean();
        sessionFactory.setSession(session);
        sessionFactory.setConverter(converter);
        sessionFactory.setSchemaAction(SchemaAction.NONE);

        return sessionFactory;
    }

    @Bean
    public CassandraMappingContext mappingContext(CqlSession cqlSession) {

        CassandraMappingContext mappingContext = new CassandraMappingContext();
        mappingContext.setUserTypeResolver(new SimpleUserTypeResolver(cqlSession));

        return mappingContext;
    }

    @Bean
    public CassandraConverter converter(CassandraMappingContext mappingContext) {
        return new MappingCassandraConverter(mappingContext);
    }

    @Bean
    public CassandraOperations cassandraTemplate(SessionFactory sessionFactory, CassandraConverter converter) {
        return new CassandraTemplate(sessionFactory, converter);
    }

}

如何解决这个错误?

【问题讨论】:

    标签: cassandra spring-data-cassandra


    【解决方案1】:

    这些版本不兼容。 spring-data-cassandra 从 2.2.x 版本到 3.x.x 版本有重大的突破性变化。

    要使用 3.x.x 版本的 Cassandra,您需要将 spring 升级到 2.3.x。要么,要么你需要降级到 spring-data-cassandra 的 2.2.x 版本。

    【讨论】:

      【解决方案2】:

      我遇到了同样的异常,

      当我升级spring boot版本时,它的工作!

       <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-parent</artifactId>
                  <version>2.4.4</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencies>
      </dependencyManagement>
      

      【讨论】:

        猜你喜欢
        • 2018-08-23
        • 2020-02-19
        • 1970-01-01
        • 2019-02-22
        • 2020-01-19
        • 2021-08-19
        • 2015-04-20
        • 2015-01-31
        • 2017-06-26
        相关资源
        最近更新 更多