2012-04-22 6 views
2

Spring Dataでneo4jを使用するWebアプリケーションを作成したかったのです。依存関係とビルドを処理するためにMavenを使用していますが、これは依存関係がspring-data-neo4jであるために問題が発生しています。Spring MVCでjavax.validationの問題が発生する

私は春・データのNeo4jが含まれている場合、それはjavax.validationが含まれていますが、これが含まれている場合、私はこの問題を引き起こし、私の@Controllerと@RequestMapping注釈をピックアップして<mvc:annotation-driven />を使用して問題を持っている:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is javax.validation.ValidationException: Unable to find a default provider 

私はspring-data-neo4jから依存関係としてjavax.validationを除外した場合、私はNeo4jTemplateにアクセスしようとしたとき、私はバリデータのエラーを取得:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'indexController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.data.neo4j.support.Neo4jTemplate org.neuralsandbox.controllers.IndexController.neo4jTemplate; nested exception is java.lang.NoClassDefFoundError: javax/validation/Validator 

は、これを解決する方法はありますか?

+0

私たちはバリデーションの依存関係をオプションにするつもりですが、私は思ったより難しいです。 –

+1

ありがとう、私の解決はHibernate Validatorを追加することでした。 – Nicholas

答えて

3

特に、実際にjavax.validation機能が必要な場合は、クラスパスにjavax.validation(Hibernate Validatorなど)の実装を追加することができます。

javax.validationが不要な場合は、ダミーorg.springframework.validation.Validatorを作成し、<mvc:annotation-driver validator = "..." />と設定することで、このエラーを抑制できます。

+1

Well * I *は 'javax.validation'は必要ありませんが、' spring-data-neo4j'はありますが、 'javax.validation'を含む解決策を考えて、自分の' Validator'を'' – Nicholas

4

validation-apiに実行時の依存関係があるようです。次のランタイム依存性を単純に追加するだけで、私の問題を解決しました。

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.1.0.Final</version> 
    <scope>runtime</scope> 
</dependency> 

これはあなたの問題も解決します。

+0

あなたはこれがどれくらい後ろから火の中でどれくらい後ろに引っ張られたか分かりません。ありがとうございました。 –

関連する問題