XXXX项目诡异问题

【XXXX项目上线】  原来就有在生产上运行的项目

basic-cloud-basic-data  上线 

dev 部署  正常 , 

 test1部署大部分正常,

uat部署正常(出现过一次不正常,后来自己好了) 因为最后上线的当天才上uat测试 

prod上线, 一次都不正常,

见鬼了 见鬼了,

解决问题顺利

1、jenkins 清理工作空间  重发        不正常

2、查看日志     ibatis.reflection.ReflectionException: Could not set property 'noChar' of 'class com.pica.cloud.foundation.basic.data.vo.ConstantsView' with value '' Cause: org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'noChar' in 'class com.pica.cloud.foundation.basic.data.vo.ConstantsView'

     奇怪,看代码 这个ConstantsView 是有对应的属性noChar的,

     并且本地运行没有问题!

3、把对应的jar拿到本地进行查看  没有问题 确定jar没有问题

4、见鬼了,, 把uat环境正常运行的pica-cloud-basic-data jar在prod运行  不正常

5、自己本机手动打包(不通过jenkins打包)  并且在本地正常运行, 拷贝至prod 运行   不正常   见鬼

6、重新查看日志  对比 ConstantsView.class  发现一点诡异的问题, 就是多了一个内部类似的

7、重新查看ConstantsView代码 代码诡异  但是不应该会影响发布不成功 ;  死马当活马看看

8、删除诡异代码  重新打包    运行   不正常。

9、在idea 中,在使用的地方点ConstantsView  发现链接到ConstantsView.class  里面不含有 noChar     终于发现问题点了,  有可能引用了两个重复的jar 版本不一样

10、查找pom.xml  发现有一个引用了一个很旧jar      

     

<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>common</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

    就是上面这个版本  久版本

同时还有一个版本  这个是新版本

<dependency>
<groupId>com.pica.cloud.foundation</groupId>
<artifactId>pica-cloud-basic-data-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

 

基本确定就是这个问题引起的 ,删掉旧版本jar  问题得到解决!

 

11、回过头细想:

     a、一开始有问题,虽然概率很小,但是没有引起重视, 不够严谨! 技术是一个相对很确定的事情,没有什么可能概率,凡是有可能出错,就一定会出错。

     b、请细看 仔细看日志,哪怕再熟悉不过的错误提示日志,也请细看,不要放过任何一个细微的单词。关联解决问题的灵感可能就这么一个细微的单词。

     c、不要相信所谓线上、以往正常的事项,往往这里有坑的话就是巨坑。

     d、要敢于尝试,敢于试错,推演不等于实践。

     e、所谓的大坑,难点,解决后,其实就那么回事,就一两个点,一直没有绕过去而已。

          细想其实就是正确的jar存在,但是没有生效而已,那为什么没有生效,其实就是可能被替换,怎么才能被替换?

          他们包路径,类名字得一样吧? 这不就这然想到可能有两个jar么?  就像当时log4j2接入,内置变量sys:LOG_PATH 就差那么一点点而已。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值