hibernatevalidator版本问题引发的tomcat7下项目启动失败

30次阅读

共计 404 个字符,预计需要花费 2 分钟才能阅读完成。

线上环境

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 版本,与线上未统一。当然这也是不合理的点

正文完
 0