【问题标题】:NoClassDefFoundError: org/elasticsearch/script/ScriptEngineNoClassDefFoundError: org/elasticsearch/script/ScriptEngine
【发布时间】:2018-12-19 09:25:51
【问题描述】:

我是 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 build 已经完成)

我的问题是我想在终端上运行我的项目,所以我在终端上得到了gradle bootRun,但我得到了这个错误NoClassDefFoundError: org/elasticsearch/script/ScriptEngine

【问题讨论】:

  • 嗯,依赖应该可以工作。您是否在配置中以某种方式禁用了传递依赖项?

标签: java elasticsearch noclassdeffounderror scriptengine


【解决方案1】:

我推荐升级到6.5.3 版本,因为它支持JDK11,但更重要的是使用RestHighLevelClient 而不是TransportClient。根据版本 7 中的文档,TransportClient 已弃用。在版本 8 中,它将从代码库中删除。

因此,如果您选择RestHighLevelClient,您应该会获得更长的支持。

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

【讨论】:

  • 不是真的!它将在版本 7 中弃用并在版本 8 中删除...
【解决方案2】:

我解决了这个问题。我们必须处理 spring-data-elasticsearch 和 elasticsearch-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**

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 2017-05-25
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2013-07-05
    • 2015-08-20
    相关资源
    最近更新 更多