Elasticsearch7.3中的SpringBoot的NoClassDefFoundError异常

我尝试通过以下高级客户端创建文档:

    Map<String,Object> jsonmap = new HashMap<>();
    jsonmap.put("name","Bob");
    jsonmap.put("id","123456");
    IndexRequest indexRequest = new IndexRequest("lead").id("123456").source(jsonmap);
    client.index(indexRequest,RequestOptions.DEFAULT);

但是它抛出一个NoClassDefFoundError:org / apache / lucene / util / BytesRefIterator。 弹性版本为7.3.2。 这就是我pom中的elasticsearch依赖项。

    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>

完整的堆栈跟踪:

Exception in thread "Thread-20" java.lang.NoClassDefFoundError: org/apache/lucene/util/BytesRefIterator
    at org.elasticsearch.action.index.IndexRequest.source(IndexRequest.java:397)
    at org.elasticsearch.action.index.IndexRequest.source(IndexRequest.java:377)
    at org.elasticsearch.action.index.IndexRequest.source(IndexRequest.java:365)
    at com.sunyard.mdhome.elasticsearch.impl.MetadataDocumentBuilderImpl.createDocument(MetadataDocumentBuilderImpl.java:182)
    at com.sunyard.mdhome.elasticsearch.impl.MetadataDocumentBuilderImpl.build(MetadataDocumentBuilderImpl.java:76)
    at com.sunyard.mdhome.elasticsearch.impl.MetadataDocumentBuilderImpl.getPage(MetadataDocumentBuilderImpl.java:163)
    at com.sunyard.mdhome.elasticsearch.impl.MetadataDocumentBuilderImpl.getSyncMetadata(MetadataDocumentBuilderImpl.java:121)
    at com.sunyard.mdhome.thread.MetadataSyncThread.run(MetadataSyncThread.java:30)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassnotFoundException: org.apache.lucene.util.BytesRefIterator
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 9 more

maven依赖树: maven dependencies tree 01 maven dependencies tree 02

dongxingchao 回答:Elasticsearch7.3中的SpringBoot的NoClassDefFoundError异常

我已找出错误的原因。此项目还有另一个依赖性,其中包括lucene-core.jar的3.5.0版本。它与elasticsearch中的8.1.0版本lucene-core.jar冲突。该程序在运行时实际上使用3.5.0版本。

本文链接:https://www.f2er.com/3122770.html

大家都在问