心血来潮,计划把开发中遇到的问题做个记录,有些bug是很简单的小问题导致的,比如变量名拼写错误、jdk版本有误;也有些是使用的框架或技术存在缺陷。在这里统计记录,以便日后总结或遇到类似问题时参考。
一. 前段时间Struts2爆出远程命令执行漏洞,领导要求对所有项目核查,使用新版jar包替换修复该漏洞。经排查,我负责的工程中,有三个使用了struts2.3.15,需要修复。
遇到问题:使用struts22.3.32替换旧版jar包后
1.工程运行报错,可以根据日志定位到是jar问题;
2.本地测试通过,但在服务器上启动时,直接报如下错误:
问题原因及解决方案:
1.新版jar包的依赖包发生变化,需将相关依赖包统一替换or升级到符合要求的版本;
2.服务器上jdk版本为1.5,过于老旧(项目已上线运营很久了),对新版jar包class文件已不能解释执行了。安装新版jdk后,ok。
总结:
依赖包的问题很好排查,有明显的日志提醒。问题2排查起来就有些耽搁功夫了,因为从他的日志中很难定位问题所在(起码对于我来说是很难)