1、问题
今天在启动微服务项目的时候出现了一个错误,大概就是controller调用某个implservice的Bean找不到。
elasticsearch下的xcontent包下找不到ToXcontentObject这个类。
2、排查
先查看POM文件,确认导入无误。
检查一遍yml配置文件,没什么大问题,检查一下JDK版本,也是没问题。再看了下maven projects,没有冲突,而且这个x-content这个依赖是存在的,于是又maven-reimport刷新了几下,还是不行。有点懵逼。
由于之前项目导入过不一样版本ElasticSearch依赖,怀疑是包冲突。最后把Maven库repository中的elasticsearch依赖删除了,mvn clean package重新编译了一下,仍然没什么叼用,陷入了沉思。。。
什么办法都没用只能使用最后的法宝,清除缓存然后重启,结果果然不出所料,还是TM的不行。。。
3、解决
最后只能去看一下Jar包源码中报错的org.elasticsearch.comman.xcontent.ToXcontentObject类是个什么东西,然后搜索发现居然没有这个东西,如此诡异的BUG,Maven-projects中都有这个依赖,项目的external libraies里面没有,之前maven-reimport过呀。
可能是整个项目的问题,然后用idea单独打开了这个服务,果然external libraies中有了jar包,找到了该死的ToXcontentObject接口。服务也可以正常启动了。
至于为什么之前的项目存在maven中有依赖,external libraies中没jar包的情况,还需要再仔细思考下,谷歌了一下说需要maven-reimport一下那显然对我无效,先把问题解决了再说。。。以后微服务再莫名其妙找不到jar包就把他挑出来单练。