1.前言:
一次正常的maven打包,把打包后的jar包放到我们的生产环境运行的时候,在正常的业务调用情况下,居然会出现"找不到符号"的报错异常,如下图
2.分析:
根据上面的异常信息,我初步分析为类没有正确生成get和set方法造成的,可能是打包的问题,于是我重新打了包,检查没有问题,先部署到我们的测试环境(测试环境系统是x86),经测试发现是正常的,然后我再部署上生产环境,但是依然会出现这个报错异常。
经上面的步骤后,我推测可能是系统架构不一样导致jvm加载类的时候会出现问题,但是之前的生产环境也是同样的部署方式却没有问题,我猜想可能是有其他人动过我们的系统配置什么的,因为我们的生产环境是有多个开发团队共用的,眼下找不到可以定位问题的具体线索,所以我为了排除是系统环境因素导致的,决定使用docker来对这个项目重新进行部署,这样就可以不受系统环境配置的改动受影响。
3.解决:
把项目改成docker部署后,项目正常跑了起来,问题也得到了解决,从中可以总结一下这次的经验,如果项目的运行环境是有多个团队共同使用的,最好使用docker来部署项目,因为每个开发团队的项目部署环境配置都是不同的,为了避免他人改动当前环境配置而影响我们的项目运行,使用docker来打包项目的适配运行环境,与当前运行环境隔离开来就可以避开很多奇怪的问题