JDK:1.8.0_131
Tomcat:8.0.27.0
Hibernate Validator:6.0.7.Final +すべてからダウンロードされた依存関係: Hibernate Validator 6
_ @POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public AccountSyncResponse excute(AccountSyncRequest account_sync_request_)
{
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<AccountSyncRequest>> violations = validator.validate(account_sync_request_);
.
.
.
.
AccountSyncResponse _AccountSyncResponse = new AccountSyncResponse();
return _AccountSyncResponse;
}
_
次の例外を除いて、コードはValidation.buildDefaultValidatorFactory()
で失敗します。
_Java.lang.NoSuchMethodError: javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;
at org.hibernate.validator.internal.xml.ValidationBootstrapParameters.<init>(ValidationBootstrapParameters.Java:63)
at org.hibernate.validator.internal.engine.ConfigurationImpl.parseValidationXml(ConfigurationImpl.Java:527)
at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.Java:328)
at javax.validation.Validation.buildDefaultValidatorFactory(Validation.Java:110)
_
間違ったjarファイルが使用されているように見えますが、どのファイルが使用されているのかわかりません。
Springboot 1.5.xからSpringboot2にアップグレードした後、この同じ問題が発生しました。解決策は、Java EE 7をJava EE 8:
から:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
に:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>