NoClassDefFoundError: org /asticsearch / script / ScriptEngine - PullRequest
0 голосов
/ 19 декабря 2018

Я новичок в Elasticsearch.мой проект gradle.используя эти зависимости;

implementation('org.springframework.boot:spring-boot-starter-data-elasticsearch')
compile group: 'org.elasticsearch.client', name: 'transport', version: '6.5.0'

springBootVersion = '2.0.3.RELEASE' , Java Version1.8

Мой проект был собран с помощью intellij и запущен.(сборка gradle выполнена)

Моя проблема в том, что я хочу запустить свой проект на терминале, поэтому я получаю gradle bootRun на терминале, но я получил эту ошибку NoClassDefFoundError: org/elasticsearch/script/ScriptEngine

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Я решил эту проблему.Нам приходится иметь дело с использованием версии между spring-data -asticsearch иasticsearch-client

spring data elasticsearch   elasticsearch
3.2.x                       6.5.0
3.1.x                       6.2.2 (I used)
3.0.x                       5.5.0
2.1.x                       2.4.0
2.0.x                       2.2.0
1.3.x                       1.5.2
Spring Boot Version (x) Spring Data ESearch Version (y) ESearch Version (z)
x <= 1.3.5              y <= 1.3.4                      z <= 1.7.2*
x >= 1.4.x              2.0.0 <=y < 5.0.0**             2.0.0 <= z < 5.0.0**
0 голосов
/ 19 декабря 2018

Я рекомендую перейти на версию 6.5.3, поскольку она поддерживает JDK11, но более важным является использование RestHighLevelClient вместо TransportClient.Согласно документации в версии 7 TransportClient устарела.В версии 8 он будет удален из кодовой базы.

Поэтому, если вы выберете RestHighLevelClient, у вас должна быть более длительная поддержка.

dependencies {
    compile 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.5.3'
}
...