hibernate-validator版本问题引发的tomcat7下项目启动失败

 阅读约 1 分钟

线上环境

jdk8
tomcat7.0.90

报错

java.lang.NoClassDefFoundError:javax/el/ELManager

原因

版本引入包:hibernate-validator:6.0.16.Final版本,使用邮箱验证注解功能,则需要依赖加载对应javax/el/ELManager。
因线上使用tomcat版本为tomcat7.0.90,在其CATALINA_HOME/lib目录下的el-api.jar的版本为2.2版本,无类javax/el/ELManager。
(tomcat8中,el-api.jar包升级为3.0版本,不会找不到类)因此启动失败。

解决

将hibernate-validator版本降到5.4.3.Final版本,去除引用校验邮箱的注解特性,该用业务代码处理

为什么线下未发现呢?因为线下环境使用的tomcat版本为8.5.32版本,与线上未统一。当然这也是不合理的点
阅读 941发布于 2019-05-28

推荐阅读
记忆阁楼
用户专栏

天道酬勤

0 人关注
6 篇文章
专栏主页
目录