SpringBootTest javax.validation.ValidationException

时间:2018-05-22 00:19:49

标签: java spring spring-boot spring-webflux

我正在测试我的带注释的javax验证。它们在应用程序中正常工作,并在方法参数上使用@Valid注释。但是当我尝试使用

手动构建验证工厂来测试它们时
Validation.buildDefaultValidatorFactory()

我收到以下错误。

  

javax.validation.ValidationException:HV000183:无法初始化' javax.el.E​​xpressionFactory'。检查您是否在类路径上有EL依赖项,或使用ParameterMessageInterpolator而不是

收到此错误后,我在gradle文件中添加了compile "org.glassfish:javax.el:3.0.0"并开始工作。为什么,验证在应用程序中工作而不需要org.glassfish:javax.el,但在手动构建验证工厂时需要?

1 个答案:

答案 0 :(得分:0)

Hibernate Validator需要实现统一表达式语言来评估约束违规消息中的动态表达式。

当应用程序在Java EE容器中运行时,容器已经提供了EL实现,这就是为什么不需要添加额外的依赖项。