javax.validation.ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory' javax.validation.ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory' java java

javax.validation.ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory'


It is working after adding to pom.xml following dependencies:

<dependency>   <groupId>javax.el</groupId>   <artifactId>javax.el-api</artifactId>   <version>2.2.4</version></dependency><dependency>   <groupId>org.glassfish.web</groupId>   <artifactId>javax.el</artifactId>   <version>2.2.4</version></dependency>

Getting started with Hibernate Validator:

Hibernate Validator also requires an implementation of the Unified Expression Language (JSR 341) for evaluating dynamic expressions in constraint violation messages. When your application runs in a Java EE container such as WildFly, an EL implementation is already provided by the container. In a Java SE environment, however, you have to add an implementation as dependency to your POM file. For instance you can add the following two dependencies to use the JSR 341 reference implementation:

<dependency>   <groupId>javax.el</groupId>   <artifactId>javax.el-api</artifactId>   <version>2.2.4</version></dependency><dependency>   <groupId>org.glassfish.web</groupId>   <artifactId>javax.el</artifactId>   <version>2.2.4</version></dependency>


do just

<dependency>   <groupId>javax.el</groupId>   <artifactId>javax.el-api</artifactId>   <version>2.2.4</version></dependency>


In case you don't need javax.el (for example in a JavaSE application), use ParameterMessageInterpolator from Hibernate validator. Hibernate validator is a standalone component, which can be used without Hibernate itself.

Depend on hibernate-validator

<dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-validator</artifactId>   <version>6.0.16.Final</version></dependency>

Use ParameterMessageInterpolator

import javax.validation.Validation;import javax.validation.Validator;import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator;private static final Validator VALIDATOR =  Validation.byDefaultProvider()    .configure()    .messageInterpolator(new ParameterMessageInterpolator())    .buildValidatorFactory()    .getValidator();