报错情况:在SpringMVC与Hibernate的环境下,当使用了Hibernate Validator验证后,修改更新实体时就报错,报错为:java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
原因:查了Hibernate文档才知道,我使用的是Hibernate-validator-5.1.1.Final.jar,官网是这么说的(网址:http://hibernate.org/validator/faq/)
意思是:
HIbernate的5.0以上的验证是否兼容tomcat6?
Hibernate Validator 5需要统一表达式语言(EL)在版本2.2或更高版本。当Tomcat
7提供了开箱即用的EL 2.2,Tomcat 6只提供了一个EL 2.1实现不使用Hibernate验证器。您将得到:NoSuchMethodError:javax.el.ExpressionFactory.newInstance()Ljavax
/ el / ExpressionFactory)
因此你可以升级到Tomcat 7或更新安装Tomcat 6中的EL的jar包。做后者,替换JAR
el-api.jar和jasper-el.jar。 在tomcat安装目录的bin目录下。
本文介绍了解决Hibernate Validator 5.x版本在Tomcat6环境中出现的NoSuchMethodError错误的方法。该问题源于Hibernate Validator需要EL 2.2版本的支持,而Tomcat6仅提供EL 2.1。解决方案包括升级Tomcat到7及以上版本或更新Tomcat6的EL JAR文件。
499

被折叠的 条评论
为什么被折叠?



