web-dev-qa-db-ja.com

java.lang.NoClassDefFoundError:javax / validation / ParameterNameProvider

小さな休止状態のアプリケーションを作成し、次のスタックトレースを取得します。

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
...

この間違いの理由はわかりません。

コード:

       Configuration configuration = new Configuration();
        configuration.configure();
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
                configuration.getProperties()).build();
        return configuration.buildSessionFactory(serviceRegistry); // exception thrown here

私の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>
         ...
     ...

関連するトピックを読んだことがありますが、それを修正する方法を本当に理解していません-hibernate 4.0バージョンにロールアウトしたくありません。

修正方法

29
user2684975

Hibernate Validator 5xはvalidation-api 1.0.xと互換性がありません

JPA 2.0:JPA 2.0でjavax.validation。*パッケージを使用する例外

33
Hank Lapidez

Javax.validation依存関係を削除するだけです

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

それは私の特定の問題を修正しました。

39
Stefan Georgiev