现象:
某项目在部署时提示ClassNotFoundException导致部署失败
排查过程
- 检查相关jar包,发现class文件存在
- 对比堆栈信息中类的全路径,发现其中某一个包路径为大驼峰方式(首字母大写),按照路径一层一层进行排查,发现编译之后,该目录变为了小写驼峰(首字母小写)
由此可见,包名首字母大写,在进行编译后,首字母会变为小写,从而导致class路径不一致,无法正常加载。
解决方案
要求其项目组按照Java程序开发规范要求,将所有的包名修改为小写,并重新编译发布,修改之后程序正常启动。
后续问题
该项目组成员反馈,拉取代码后,程序包路径错误。
经检查发现,该项目成员拉取后的代码,包目录名称依旧是大写。
经排查,git可能会忽略目录的大小写,需关闭git的相关配置后,再重新推送,才可正确的修改包目录名称
git config core.ignorecase false