Spring MVC与javax.validation有关

时间:2012-04-22 07:28:12

标签: maven spring-mvc neo4j spring-data

我想创建一个将neo4j与Spring Data一起使用的Web应用程序。我正在使用Maven来处理依赖关系和构建,我因为spring-data-neo4j的依赖关系而无法做到这一点。

当我包含spring-data-neo4j时,它包含javax.validation,但是当包含<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 来获取我的@Controller和@RequestMapping注释,这会导致此问题:

javax.validation

如果我从spring-data-neo4j中排除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 时会收到验证程序错误:

{{1}}

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

似乎对validation-api存在运行时依赖性。它通过简单地添加以下运行时依赖项来解决我的问题。

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

希望这也可以解决您的问题。

答案 1 :(得分:3)

一个可能的选项,特别是当您确实需要javax.validation功能时,是将javax.validation的实现(例如Hibernate Validator)添加到类路径中。

如果您不需要javax.validation,则应该可以通过创建虚拟org.springframework.validation.Validator并将其配置为<mvc:annotation-driver validator = "..." />来抑制此错误。

相关问题