国庆假期前,代码正常,并且在上正常运行。
国庆假期后第一天上班上午,发现项目偶尔起不来,没在意,(过于粗心)
下午提测 test1 uat全部启不来, 多试几次,uat正常启动。
下午 本地一直起不来,
开始重视问题 排查问题
同一套代码,只是小改动,没有理由启动不来,
表象1:
cannot determine embedded database driver class for database type none
各种试 看问题, 问题还是偶尔会重现
把代码切换至release分支(线上分支) 同样启动不了,
应该不是代码问题,
看问题点: 查找资料;mybatis-plus 跟mybatis-boot 有冲突 但看代码pom引入已经注释掉了。
https://gitee.com/baomidou/mybatis-plus/issues/ITB8U
https://www.cnblogs.com/kmsfan/p/7189626.html
包括尝试各种注释pom引入 发觉肯定不对。
最后,有没有可能是config-server假死问题, 之前碰到过,但是报错表现不是如此, 果断重启两台config-server,信心满满已经找到问题所在,
但没用,问题没有得到解决。
第一次,把说有的jar check一遍 没有发现问题
第二次,再check一遍,以为发现问题,但结果无卵用。
这时候怀疑是不是idea的bug ,果断重启已经运行了快一个月的个人电脑,
并无卵用,但是表象信息变成
表象2:
Caused by: java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory
再次用release分支,还是这个表象,
再次查找资料,基本确定
各种比较,同一套代码,唯一可能是jar冲突问题,
这时候,去找把之前注释过的pom.xml引入
问题再现;
下班后,楼下散步,再来重新check一遍,,并且针对性的查找是不是有
mybatis-spring-boot-starter
羊驼几遍, 终于发现
在一个很隐蔽的jar内部 再次引入了这个个jar
果断移除 问题得到解决
好坑呀, 消耗好几个小时,
这个问题排查点难在于:
没有做任何改动的一套代码 ,突然出现问题了。 还不是必现问题,过渡相信代码没有问题。问题点没有快速定位。
以后jar引入一定要慎重, 这个jar引入是在一个月前 另外一个同事引入的, 但是问题点在于: 为什么之前 一直没有出现问题呢? 一定要等到国庆后才有问题展现呢? jar冲突, 要考肉眼冲几百个jar里面去找,是非常不现实的。 由于是在不确定哪个jar冲突的时候,更是非常的目盲。
真奇葩了