尝试使用带有嵌入式弹性搜索的java创建索引时获取NoClassDefFoundError。
这是堆栈跟踪的片段: -
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.index.codec.postingsformat.PostingFormats
at org.elasticsearch.index.codec.CodecModule.configurePostingsFormats(CodecModule.java:126)
这与elastisearch.jar中的META-INF / services文件夹有关,需要使用maven-shade-plugin
答案 0 :(得分:0)
因此,各种lucene和elasticsearch jar的META-INF /服务中包含许多文件。其中一些文件具有相同的文件名,例如
org.apache.lucene.codecs.PostingsFormat
maven-shade-plugin通过将条目组合到一个文件中来解决此问题。实际的例外是IllegalArgEx,如
org.apache.lucene.codecs.memory.DirectPostingsFormat
无法从某些静态初始化的集合中加载