線上環境
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版本,與線上未統一。當然這也是不合理的點