elasticsearch,noclassdeffounderror,scriptengine,Java,elasticsearch,Noclassdeffounderror,Scriptengine" /> elasticsearch,noclassdeffounderror,scriptengine,Java,elasticsearch,Noclassdeffounderror,Scriptengine" />

Java NoClassDefFoundError:org/elasticsearch/script/ScriptEngine

Java NoClassDefFoundError:org/elasticsearch/script/ScriptEngine,java,elasticsearch,noclassdeffounderror,scriptengine,Java,elasticsearch,Noclassdeffounderror,Scriptengine,我不熟悉Elasticsearch。 我的项目是格拉德尔。使用这些依赖关系 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 Version

我不熟悉Elasticsearch。 我的项目是格拉德尔。使用这些依赖关系

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
我建议移动到版本
6.5.3
,因为它支持JDK11,但更重要的是使用
RestHighLevelClient
而不是使用
TransportClient
。根据第7版
中的文档,TransportClient
已被弃用。在版本8中,它将从代码库中删除

因此,如果您选择
RestHighLevelClient
,您应该有更长的支持时间

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

我解决了那个问题。我们必须处理spring数据elasticsearch和elasticsearch客户端之间版本的使用

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**
spring数据弹性搜索弹性搜索
3.2.x 6.5.0
3.1.x 6.2.2(我用过)
3.0.x 5.5.0
2.1.x 2.4.0
2.0.x2.2.0
1.3.x 1.5.2
Spring启动版本(x)Spring数据搜索版本(y)ESearch版本(z)

嗯,依赖关系应该是有效的。您是否在配置中以某种方式禁用了可传递依赖项?这不是真的!它将在版本7中被弃用,并在版本8中被删除。。。