SpringBootTest javax.validation.ValidationException
SpringBootTest javax.validation.ValidationException
我正在测试带注释的 javax 验证。它们在方法参数上带有 @Valid
注释的应用程序中运行良好。但是当我尝试通过使用
手动构建验证工厂来测试它们时
Validation.buildDefaultValidatorFactory()
我收到以下错误。
javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead
收到此错误后,我在我的 gradle 文件中添加了 compile "org.glassfish:javax.el:3.0.0"
,它开始工作了。为什么,验证在应用程序中工作而不需要 org.glassfish:javax.el
但在手动构建验证工厂时需要?
Hibernate Validator 需要统一表达式语言的实现来评估约束违规消息中的动态表达式。
当应用程序在 Java EE 容器中运行时,容器已经提供了 EL 实现,因此无需添加额外的依赖项。
我正在测试带注释的 javax 验证。它们在方法参数上带有 @Valid
注释的应用程序中运行良好。但是当我尝试通过使用
Validation.buildDefaultValidatorFactory()
我收到以下错误。
javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead
收到此错误后,我在我的 gradle 文件中添加了 compile "org.glassfish:javax.el:3.0.0"
,它开始工作了。为什么,验证在应用程序中工作而不需要 org.glassfish:javax.el
但在手动构建验证工厂时需要?
Hibernate Validator 需要统一表达式语言的实现来评估约束违规消息中的动态表达式。
当应用程序在 Java EE 容器中运行时,容器已经提供了 EL 实现,因此无需添加额外的依赖项。