Hello,World

es7.3版本整合SpringBoot创建document时报java.lang.NoClassDefFoundError

匿名 | 发布于2019年11月11日 | 阅读数:2748

es7.3整合SpringBoot创建document时报java.lang.NoClassDefFoundError。
代码如下:
        Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("name", "Bob");
jsonMap.put("id", "123456");
IndexRequest indexRequest = new IndexRequest("lead").id("123456").source(jsonMap);
try {
client.index(indexRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
完整报错信息如下:
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依赖如下:
        <dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.3.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.3.2</version>
</dependency>
已邀请:

Terminator

赞同来自:

已经找到原因了。是因为项目中其他模块依赖了一个低版本的lucene-core:3.5.0的jar包,程序执行的时候调用了这个低版本的lucene-core里的类。
 
目前原因是找到了,但是项目中两个模块的确是需要不同版本的jar才能运行,还没想到解决冲突的办法。
 

要回复问题请先登录注册