java.lang.NoSuchMethodError:javax.validation.BootstrapConfiguration.getClockProviderClassName

Spring Boot 2随附了hibernate-validator 6org.hibernate.validator:hibernate-validator:6.0.16.Final依赖于validation-api 2javax.validation:validation-api:2.0.1.Final),后者特定于Java EE 8,请参见附录F.依赖版本。但是可能必须使用Java支持较旧的应用程序服务器仅限EE 7,Spring Framework 5仍应支持它,请参阅运行时支持

在这种情况下,请使用较旧的hibernate-validator5.4.3.Final)和validation-api1.1.0.Final)。如果您使用Spring Boot maven parent,则只需定义这些属性。

<properties>
    <javax-validation.version>1.1.0.Final</javax-validation.version>
    <hibernate-validator.version>5.4.3.Final</hibernate-validator.version>
</properties>

问题是从版本6开始,hibernate-validator已更改groupId,因此您必须排除新的组,但添加旧的组,例如

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>${hibernate-validator.version}</version>
</dependency>

 

posted @ 2020-04-02 15:14  valar-dohaeris  阅读(5603)  评论(0编辑  收藏  举报