【问题标题】:Spring Data java.lang.NoSuchMethodErrorSpring Data java.lang.NoSuchMethodError
【发布时间】:2014-08-14 08:59:39
【问题描述】:

春天来了

java.lang.NoSuchMethodError: org.springframework.data.util.ClassTypeInformation.from(Ljava/lang/Class;)Lorg/springframework/data/util/ClassTypeInformation;
        at org.springframework.data.elasticsearch.core.MappingBuilder.isEntity(MappingBuilder.java:260)
        at org.springframework.data.elasticsearch.core.MappingBuilder.mapEntity(MappingBuilder.java:97)
        at org.springframework.data.elasticsearch.core.MappingBuilder.buildMapping(MappingBuilder.java:70)
        at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.putMapping(ElasticsearchTemplate.java:156)
        at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.putMapping(AbstractElasticsearchRepository.java:84)
        at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.<init>(AbstractElasticsearchRepository.java:73)
        at org.springframework.data.elasticsearch.repository.support.NumberKeyedRepository.<init>(NumberKeyedRepository.java:36)
        at org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory.getTargetRepository(ElasticsearchRepositoryFactory.java:73)
        at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:147)
        at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:162)
        at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:44)
        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1442)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:248)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:876)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:818)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:735)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)

这是我的存储库,这是导致问题的原因

@Repository("clinicalDocumentRepository")
public interface ConsultationDocumentRepo extends ElasticsearchCrudRepository<ConsultationDocument,Long> {

我该如何解决这个问题?

【问题讨论】:

  • 这可能是一些依赖不匹配。你也可以显示你的依赖关系吗?

标签: java spring elasticsearch spring-data spring-data-elasticsearch


【解决方案1】:

对于当前的 Spring Data Elasticsearch 版本 (1.0.0.RELEASE),您需要 1.8.0.RELEASE 中的 Spring Data Commons(正如 pom 所建议的那样)。

一般而言,我们建议使用发布序列 BOM(如文档中的 here 所述)以确保您获得匹配版本中的所有 Spring Data 库。 BOM 的当前版本是Dijkstra-RELEASE

【讨论】:

  • 所以我会在我的 POM 中添加 Spring Data Commons 1.8.0.RELEASE 吗?我以为maven已经自动做到了?我还有其他版本的 Spring Data,Spring Data JPA 1.2.0。会不会出问题?
  • Spring Data JPA 1.2 与 Spring Data Elasticsearch 1.0 兼容。 Spring Data ES 是 Dijkstra 发布系列的一部分,所以这里are 兼容版本。
【解决方案2】:

ClassTypeInformation 在 1.1.0 版本中引入了该方法:

public static <S> TypeInformation<S> from(Class<S> type) {

确保您的 spring-data-commons 版本 >=1.1.0

【讨论】:

  • 和Spring-Data-Commons 1.8.0有区别吗?和common core有区别吗?
  • 我的 maven 上似乎存在依赖项不匹配。我有两个 spring-data-commons 版本。一个是 1.8.0,一个是 1.6.0。但它应该可以工作
  • spring-data-elasticsearch 的版本是多少?
  • Spring data es 在 1.0.0
  • 我建议您运行 mvn dependency:tree 并查看它。我将帮助您了解您的依赖项发生了什么
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2013-01-12
  • 2014-04-26
  • 2020-06-20
  • 2017-05-28
  • 2016-03-06
  • 2023-03-06
相关资源
最近更新 更多