我正在测试我的带注释的javax验证。它们在应用程序中正常工作,并在方法参数上使用@Valid
注释。但是当我尝试使用
Validation.buildDefaultValidatorFactory()
我收到以下错误。
javax.validation.ValidationException:HV000183:无法初始化' javax.el.ExpressionFactory'。检查您是否在类路径上有EL依赖项,或使用ParameterMessageInterpolator而不是
收到此错误后,我在gradle文件中添加了compile "org.glassfish:javax.el:3.0.0"
并开始工作。为什么,验证在应用程序中工作而不需要org.glassfish:javax.el
,但在手动构建验证工厂时需要?
答案 0 :(得分:0)
Hibernate Validator需要实现统一表达式语言来评估约束违规消息中的动态表达式。
当应用程序在Java EE容器中运行时,容器已经提供了EL实现,这就是为什么不需要添加额外的依赖项。