Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

javax.validation.NoProviderFoundException: Unable to create a Configuration, because no Bean Validation provider could be found

Ask Question

no Hibernate Bean Validator could be found even though it's added to the classpath.

I have a simple web application in Spring Boot. I am trying to test the Hibernate Validator with this simple function:

public void validateUser(User user) {
   ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
   Validator validator = factory.getValidator();
   Set<ConstraintViolation<User>> violations = validator.validate(user);

But it throws an exception: javax.validation.NoProviderFoundException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.

I tried using different libraries but they all don't work.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>7.0.1.Final</version>
</dependency>

I am using Java 17.

For a Spring Boot project you would want to add the spring-boot-starter-validation starter dependency.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

All the Spring Boot started projects can be found in the official documentation: spring.io

After you add a new dependency to your pom.xml file, I recommend running mwnv clean package (or mvn clean package) to fetch the dependencies and build a clean project.

Also, for bootstrapping/generating Spring Boot projects you may want to use Spring Initializr.

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.