java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider

java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider,java,hibernate,maven,Java,Hibernate,Maven,我编写了一个小型hibernate应用程序,并获得以下stacktrace: org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:154)

我编写了一个小型hibernate应用程序,并获得以下stacktrace:

org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration
    at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:154)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:312)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857)
    at com.beingjavaguys.hbn.HibernateUtil.buildSessionFactory(HibernateUtil.java:18)
    at com.beingjavaguys.hbn.HibernateUtil.<clinit>(HibernateUtil.java:10)
    at crud.UserDao.addUser(UserDao.java:12)
    at com.beingjavaguys.hbn.App.main(App.java:53)
Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
...
my pom.xml:

...
<dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.5.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.5.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
            <scope>provided</scope>
        </dependency>
         ...
     ...
。。。
org.hibernate
冬眠核心
4.3.5.最终版本
org.hibernate
休眠验证器
5.1.1.最终版本
org.hibernate.common
hibernate commons注释
4.0.4.4最终版本
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
1.0.1.最终版本
org.hibernate
休眠实体管理器
4.3.5.最终版本
javax.validation
验证api
1.0.0.GA
假如
...
...
我读过相关的主题,但我真的不知道如何修复它-我不想推出Hibernate4.0版本


如何修复它?

Hibernate Validator 5x与验证api 1.0.x不兼容


只需删除javax.validation依赖项即可

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.0.0.GA</version>
</dependency>

javax.validation
验证api
1.0.0.GA

这就解决了我这边的这个问题。

我们可以将Hibernate-validator-4.2.0.Final.jar与validation-api-1.1.0.Final.jar一起使用吗?当使用Hibernate-validator 5.x时,将javax.validation升级到2.x-这为我解决了这个问题。Hibernate-validator 5.x使用Hibernate-validator 6的验证api 1.1,它使用验证api 2.0BTW,在我的例子中,将所有Hibernate验证器从v6.x降级到v5.x与验证api 1.0.x配合得很好。谢谢你的思考方向!
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.0.0.GA</version>
</dependency>