this と this を読みましたが、役に立ちませんでした...
次のバージョン/依存関係で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を使用するものはありません。 (もしそうなら、私はそれらがログにロードされているのも見るでしょうね?)
何か助けはありますか?
2つのjar(validation-api-1.1.0.final.jarおよびhibernate-validator-5.0.1.final.jarと共に)の下に追加したJSR 303 Bean Validationで作業しているときに同じ問題に直面し、問題が発生しました解決済み
私にとっての問題は、HibernateValidatorがjboss-loggingに依存していたことでした。そして、jbossロギングは私のクラスパスの一部ではありませんでした。例外は、休止状態の設定implをインスタンス化しようとしたときに、クラスnotdefがエラーを検出したことを通知していませんでした。クラスパスにjbossロギングがないことが原因でした。
クラスパスに追加すると、クラス定義が見つかりませんというエラーがなくなりました。
Javax.elの複数の実装が疑われます。これが通常、この種の問題の原因です。
別の名前の別のものがないことを確認してください。
そうでない場合は、ConfigurationImplコンストラクターにチェックポイントを追加し、何が失敗しているかを確認します。
この設定のようにしてみてください:
<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>
完全な 例 。
まず、mvn dependency:tree
を使用してすべての依存関係を確認します-hibernate-validator
を見つけて、必要がない場合は、それぞれの依存関係内のpom.xmlに以下を追加します。
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</exclusion>
これをspring-servelt.xmlに追加します
<beans:bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> </beans:bean>
と次の瓶
その後、すべてが正常に動作します。
お力になれて、嬉しいです...