1

printemps jettedonnées Spring java.lang.NoSuchMethodError

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) 

Voici mon dépôt, ce qui est une cause du problème

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

Comment puis-je résoudre ce problème?

+0

Il s'agit probablement d'une discordance de dépendance. Pouvez-vous également montrer vos dépendances? – geoand

Répondre

4

ClassTypeInformation introduit la méthode dans la version 1.1.0:

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

Assurez-vous que votre version printemps-données-communes est> = 1.1.0

+0

est-il différent de Spring-Data-Commons 1.8.0 est-il différent du noyau commun? – user962206

+1

Que voulez-vous dire? – codependent

+0

Il semble y avoir une discordance de dépendance sur mon maven. J'ai deux versions de spring-data-commons. l'un est 1.8.0 et l'autre 1.6.0. mais est censé fonctionner – user962206

1

Pour la version actuelle des données Spring ElasticSearch (1.0. 0.RELEASE) vous avez besoin Spring Data Commons dans 1.8.0.RELEASE (comme le suggère pom).

D'une manière générale, nous recommandons d'utiliser la nomenclature de la librairie de mise à jour (comme documentée here) pour vous assurer d'avoir toutes les librairies Spring Data dans les versions correspondantes. La version actuelle de la nomenclature est Dijkstra-RELEASE.

+0

Donc, je vais ajouter Spring Data Commons 1.8.0.RELEASE dans mon POM? Je pensais que maven le fait déjà automatiquement? J'ai aussi d'autres versions de Spring Data, Spring Data JPA 1.2.0. Cela va-t-il causer des problèmes? – user962206

+0

Spring Data JPA 1.2 n'est * pas * compatible avec Spring Data Elasticsearch 1.0. Spring Data ES fait partie du train de versions de Dijkstra, donc voici (http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-releasetrain%7CDijkstra-RELEASE%7Cpom) le versions. –

Questions connexes