java.lang.NoClassDefFoundError: javax/validation/valueextraction/ValueExtractorDeclarationException
今天部署环境遇到这个问题,查了好长时间终于解决了;
问题原因:
由于jar包hibernate-validator、validation-api 不兼容。
解决方案:
(1). 简单粗暴:根据需求删除不兼容的jar包,删除jar包必须在保证代码没有使用的情况下,不知道的尽量别删除;
(2).解决兼容问题: 版本不兼容,就找兼容版本。
升级hibernate-validator版本:
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
升级validation-api版本:
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.5.Final</version>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
记住,随着开发越来越深入,遇到的问题千奇百怪,需要我们随时随地去总结一些解决问题的方式和记录结果。
更多参考:
Hibernate Validator 5x is not compatible with validation-api 1.0.x
JPA 2.0 : Exception to use javax.validation.* package in JPA 2.0