例外:-
jakarta.validation.NoProviderFoundException:无法创建 配置,因为没有 Jakarta Bean Validation 提供程序可以 成立。将 Hibernate Validator (RI) 之类的提供程序添加到您的类路径中。 在 jakarta.validation.Validation$GenericBootstrapImpl.configure(Validation.java:291) ~[jakarta.validation-api-3.0.2.jar:na] 在 jakarta.validation.Validation.buildDefaultValidatorFactory(Validation.java:103) ~[jakarta.validation-api-3.0.2.jar:na] 在 org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:479) 〜[hibernate-core-6.1.6.Final.jar:6.1.6.Final] 在 org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:82) 〜[hibernate-core-6.1.6.Final.jar:6.1.6.Final] 在 ......
....org.springframework.boot.SpringApplication.run(SpringApplication.java:308) 〜[spring-boot-3.0.2.jar:3.0.2] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1302) 〜[spring-boot-3.0.2.jar:3.0.2] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1291) 〜[spring-boot-3.0.2.jar:3.0.2] 在 com.spring.security.MicroServiceServer1Application.main(MicroServiceServer1Application.java:10) 〜[班级/:na]在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机 方法)~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 〜[娜:娜]在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 〜[娜:娜]在 java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] 在 org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) 〜[spring-boot-devtools-3.0.2.jar:3.0.2]org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:137)
Maven 依赖关系:-
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
...
我必须记录我的 api,所以我添加了 OpenAPI,我的 Spring boot 项目是 Spring Boot 3。 所以我添加了它,它抛出了 NoProviderFoundException 但 OpenAPI 工作正常,但我不明白为什么它会出现,所以我在每个地方搜索了很多次,但我没有得到答案。
请有了解的请回复。
还有
我也添加了雅加达验证,但仍然出现异常
依赖性:-
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.0.2</version>
</dependency>
*** 谢谢你***
不要添加
jakarta.validation-api
作为依赖项,而是尝试 spring-boot-starter-validation
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
我也遇到了这个错误,最终通过将验证 jar 从 2.X 更新到 3.0 解决了该错误,因为我的项目是从 spring boot 3.X 构建的。验证工具可以在https://beanvalidation.org/3.0/中找到。