【开发心得】记一次springboot2.x集成spring data elasticsearch java.lang.NoSuchFieldError: LATEST的报错

前言: 最近新模块需要引入新版es,在自己建立的单独的boot工程里边,正常集成,正常处理业务。但是搬到父工程里,发现报错。

奇怪了,之前的群组工程并没有使用es或者solr啊,为啥启动不起来呢。

1.一个小儿科的问题,包路径多了一层, 导致bean注入失败。

2.工程里边包含lucene。。。。(前辈之前做测试的时候加的)

3.还有一个问题是,如果是父子工程的情况下,手动指定elastic search版本,需要在父工程的properties中指名版本号。

 

报错:java.lang.NoSuchFieldError: LATEST
通过查看报错处Environment对象源码,发现有如下变量声明。

public static final org.apache.lucene.util.Version DEFAULT_LUCENE_MATCH_VERSION = org.apache.lucene.util.Version.LATEST;
显然该变量又引用了lucene-core-version.jar下的工具类Version中的变量值。

解决方案:

去掉lucene以来即可。

posted @ 2021-04-28 14:29  虹梦未来  阅读(17)  评论(0编辑  收藏  举报  来源