2016-12-21 3 views
0

Ich lerne Spring-Boot-Starter-Daten-Elasticsearch mit Gradle. Ich habe unten Abhängigkeiten in meiner .gradle-Datei definiert:Ausnahme bei der Abfrage von Elasticsearch durch Spring-Boot-Starter-Daten-Elasticsearch

dependencies { 
compile 'org.slf4j:slf4j-api:1.7.21' 
compile 'org.springframework.boot:spring-boot-starter-data-elasticsearch:1.4.2.RELEASE' 
compile 'org.springframework:spring-test:4.1.2.RELEASE' 
compile 'org.springframework.boot:spring-boot-starter-logging:1.4.2.RELEASE' 
compile 'org.springframework.boot:spring-boot-starter-web:1.4.2.RELEASE' 
compile 'org.springframework.boot:spring-boot-starter-actuator:1.4.2.RELEASE' 
compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.6' 
compile 'com.fasterxml.jackson.core:jackson-core:2.7.6' 
testCompile 'junit:junit:4.12' 
} 

I Elasticsearch Version 2.3.1 verwenden. Ich habe eine Klasse erstellt, indem ich ElasticsearchRepository erweitert habe. Jetzt, wenn ich versuche Elasticsearch abfragen i unten Ausnahme bin immer

java.lang.NoSuchMethodError: com.fasterxml.jackson.dataformat.smile.SmileGenerator.getOutputContext()Lcom/fasterxml/jackson/core/json/JsonWriteContext;`

Bitte helfen Sie mir dieses Problem zu beheben.

+0

Überprüfen und validieren Sie, dass Sie nur eine Version der Jackson-Abhängigkeit von Ihrem Klassenpfad haben. Es sieht nach einem typischen Problem aus, bei dem der Klassenlader eine inkompatible Bibliothek lädt. –

Antwort

1

Dies ist ein typisches Beispiel, in dem Sie Versionsabhängigkeiten selbst steuern und inkompatible Versionen auswählen. Warum tust du das?

Eine der Stärken von Spring Boot ist, dass es eine kohärente und konsistente Abhängigkeitsverwaltung bietet. Anstatt die Version selbst anzugeben, lassen Sie eine bestimmte Version von Spring Boot das für Sie verwalten. Dies funktioniert sowohl mit Maven als auch mit Gradle.

Sie können sehen, wie eine typische Graples-Build-Datei aussieht, indem Sie https://start.spring.io wählen, Gradle-Projekt auswählen und Ihre Abhängigkeiten in das Suchfeld eingeben (web, aktor, elasticsearch). Jackson wird bereits vom Web bereitgestellt und SLF4j kommt mit jedem Starter.

Verwandte Themen