【问题标题】:Spring MVC issues with javax.validationjavax.validation 的 Spring MVC 问题
【发布时间】:2012-04-22 07:28:12
【问题描述】:

我想创建一个将 Neo4j 与 Spring Data 结合使用的 Web 应用程序。我正在使用 Maven 来处理依赖关系和构建,但由于 spring-data-neo4j 的依赖关系,我在执行此操作时遇到了麻烦。

当我包含 spring-data-neo4j 时,它包含 javax.validation,但是当包含它时,我在使用 <mvc:annotation-driven /> 来获取我的 @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

有没有办法解决这个问题?

【问题讨论】:

  • 我们将使验证依赖项成为可选的,但我认为它更棘手。
  • 感谢您的回复,我的决定是添加 Hibernate Validator,然后一切正常。

标签: maven spring-mvc neo4j spring-data


【解决方案1】:

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

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

希望这也能解决您的问题。

【讨论】:

  • 你不知道这让我的背后有多火。谢谢。
【解决方案2】:

一种可能的选择,尤其是当您真正需要javax.validation 功能时,是将javax.validation 的实现(例如Hibernate Validator)添加到类路径中。

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

【讨论】:

  • 好吧,不需要javax.validation,但spring-data-neo4j 需要,但我可能会采用您的解决方案,包括javax.validation,然后只是滚动我自己的@ 987654329@&lt;mvc:annotation-driver&gt;
猜你喜欢
  • 2014-05-05
  • 2013-08-21
  • 2014-12-11
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
相关资源
最近更新 更多