web-dev-qa-db-ja.com

Hibernate Validator Java.lang.NoClassDefFoundError:クラスorg.hibernate.validator.internal.engine.ConfigurationImplを初期化できませんでした

thisthis を読みましたが、役に立ちませんでした...

次のバージョン/依存関係でHibernateバリデーターを使用しています:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.4.1.FINAL</version>
</dependency>
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.el</artifactId>
    <version>3.0.1-b08</version>
</dependency>

私はすべてを正しく行っていると思いました、そして私のログ(フラグとしてverbose:classを使用)は私にそれを教えてくれます:

[ファイルからorg.hibernate.validator.internal.engine.ConfigurationImplをロードしました:... /hibernate-validator-5.4.1.Final.jar]

[ファイルからjavax.validation.Validationをロードしました:... /validation-api-1.1.0.Final.jar]

しかし、後で実行時に、

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

古典的なエラーが発生します:

Java.lang.NoClassDefFoundError:クラスorg.hibernate.validator.internal.engine.ConfigurationImplを初期化できませんでした

また、hibernate-validator4.3.1とjavax.validation-api1.0.0にダウングレードしようとしましたが、奇妙なことにエラーは同じままでした。

このプロジェクトには他にもたくさんの依存関係があります(Springなど)が、私が見る限り、hibernate-validatorまたはjavax検証APIを使用するものはありません。 (もしそうなら、私はそれらがログにロードされているのも見るでしょうね?)

何か助けはありますか?

4
kerox___m

2つのjar(validation-api-1.1.0.final.jarおよびhibernate-validator-5.0.1.final.jarと共に)の下に追加したJSR 303 Bean Validationで作業しているときに同じ問題に直面し、問題が発生しました解決済み

  1. classmate-0.8.0.jar 2.jboss-logging-3.1.0.ga.jar
2
Rakesh Bhagat

私にとっての問題は、HibernateValidatorがjboss-loggingに依存していたことでした。そして、jbossロギングは私のクラスパスの一部ではありませんでした。例外は、休止状態の設定implをインスタンス化しようとしたときに、クラスnotdefがエラーを検出したことを通知していませんでした。クラスパスにjbossロギングがないことが原因でした。

クラスパスに追加すると、クラス定義が見つかりませんというエラーがなくなりました。

1
99Sono

Javax.elの複数の実装が疑われます。これが通常、この種の問題の原因です。

別の名前の別のものがないことを確認してください。

そうでない場合は、ConfigurationImplコンストラクターにチェックポイントを追加し、何が失敗しているかを確認します。

0
Guillaume Smet

この設定のようにしてみてください:

<properties>

        <hibernate.version>4.3.11.Final</hibernate.version>
    </properties>

    <dependencies> 
        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <!-- jsr303 validation -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.3.Final</version>
        </dependency>    

    </dependencies>

完全な

0
FuSsA

まず、mvn dependency:treeを使用してすべての依存関係を確認します-hibernate-validatorを見つけて、必要がない場合は、それぞれの依存関係内のpom.xmlに以下を追加します。

<exclusion>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
</exclusion>
0
Atul Jain

これをspring-servelt.xmlに追加します

 <beans:bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> </beans:bean> 

と次の瓶

  1. hibernate-validator-6.0.17.Final.jar
  2. 検証-api-2.0.1.Final.jar
  3. classmate-1.3.4.jar
  4. jboss-logging-3.3.2.Final.jar

その後、すべてが正常に動作します。

お力になれて、嬉しいです...

0
Pramod Wayabase