我想创建一个将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}}
有什么方法可以解决这个问题吗?
答案 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 = "..." />
来抑制此错误。