java.lang.NoSuchMethodError:javax.validation.BootstrapConfiguration.getClockProviderClassName
Spring Boot 2随附了hibernate-validator 6(org.hibernate.validator:hibernate-validator:6.0.16.Final
依赖于validation-api 2(javax.validation:validation-api:2.0.1.Final
),后者特定于Java EE 8,请参见附录F.依赖版本。但是可能必须使用Java支持较旧的应用程序服务器仅限EE 7,Spring Framework 5仍应支持它,请参阅运行时支持。
在这种情况下,请使用较旧的hibernate-validator(5.4.3.Final)和validation-api(1.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>