Maven SpringMVC与javax.validation的问题
我想创建一个使用neo4j和Spring数据的Web应用程序。我正在使用Maven来处理依赖关系和构建,但由于Maven SpringMVC与javax.validation的问题,maven,spring-mvc,neo4j,spring-data,Maven,Spring Mvc,Neo4j,Spring Data,我想创建一个使用neo4j和Spring数据的Web应用程序。我正在使用Maven来处理依赖关系和构建,但由于spring-data-neo4j的依赖关系,我在这方面遇到了麻烦 当我包含spring-data-neo4j时,它包含了javax.validation,但是当我包含它时,我在使用获取@Controller和@RequestMapping注释时遇到了问题,这导致了这个问题: org.springframework.beans.factory.BeanCreationException:
spring-data-neo4j
的依赖关系,我在这方面遇到了麻烦
当我包含spring-data-neo4j时,它包含了javax.validation
,但是当我包含它时,我在使用
获取@Controller和@RequestMapping注释时遇到了问题,这导致了这个问题:
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
如果我将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
有没有办法解决这个问题?一个可能的选择,特别是当您实际需要
javax.validation
功能时,就是将javax.validation
的实现(例如Hibernate Validator)添加到类路径中
如果您不需要
javax.validation
,您应该能够通过创建一个虚拟org.springframework.validation.Validator
并将其配置为
来抑制此错误,因为它似乎与验证api存在运行时依赖关系。它通过简单地添加以下运行时依赖项解决了我的问题
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
<scope>runtime</scope>
</dependency>
javax.validation
验证api
1.1.0.1最终版本
运行时
希望这也能解决您的问题。我不需要
javax.validation
,但是spring-data-neo4j
需要,但是我可能会选择您的解决方案,包括javax.validation
然后为
滚动我自己的Validator
来选择验证依赖项,但我认为这更为棘手。感谢您的响应,我的解决方案是添加Hibernate验证器,然后一切都好起来了。你不知道这对我来说有多重要。非常感谢。