Spring Boot 3添加OpenAPI依赖后NoProviderFoundException

1 spring spring-boot spring-boot-maven-plugin openapi jakarta-ee

例外 :-

jakarta.validation.NoProviderFoundException:无法创建配置,因为找不到 Jakarta Bean 验证提供程序。将 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) ~[classes/:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) ~[na:na]在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[ na:na] 在 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>
    
 ...
Run Code Online (Sandbox Code Playgroud)

我必须记录我的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> 
Run Code Online (Sandbox Code Playgroud)

*** 谢谢 ***

Dir*_*yne 7

不要添加jakarta.validation-api为依赖项,而是尝试spring-boot-starter-validation

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)