javax.validation.ValidationException:无法找到默认提供程序

Cap*_*aps 32 java spring hibernate-validator bean-validation

我目前正在使用Spring MVC Web应用程序并尝试使用@Valid注释挂钩验证.当我启动应用程序时,我得到以下异常:

javax.validation.ValidationException: Unable to find a default provider
Run Code Online (Sandbox Code Playgroud)

我在类路径上有Hibernate Validator 3.1.0.GA以及javax验证1.0.0.GA,Hibernate Core 3.3.1.GA和Hibernate Annotations 3.4.0.GA.

在那些我没有看到的版本中是否存在不兼容性,或者是否有人会想到为什么我仍然在类路径上使用Hibernate Validator获得此异常的原因?

干杯,

帽子

Ash*_*dal 37

请参阅此答案:https://stackoverflow.com/a/3989936/325742

要修复,添加此maven依赖Hibernate Validator Annotation Processor.

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-validator-annotation-processor</artifactId>
  <version>4.1.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是该神器的最新稳定版本,从看到这里


寻找依赖的通用方法

让我们说你有一个NoClassDefFoundError说明org.postgresql.Driver没有找到班级.

  1. 使用Jarvana搜索可以提供的依赖关系org.postgresql.Driver:http://www.jarvana.com/jarvana/search? search_type = class&java -class = org.postgresql.Driver 给出 在此输入图像描述

  2. 将上述依赖项转换为maven依赖项格式:

    <dependency>
        <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
       <version>9.1-901.jdbc4</version>
     </dependency>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确认上述可在Maven的中央通过搜索像这样: (其中代表组ID和代表的artifactId)
    g:"postgresql" AND a:"postgresql"
    ga

  4. 最后,将它添加到您的pom.xml中


使用m2e查找依赖关系

如果您对所需的依赖关系有一个大致的了解,或者可以找出给定列表所需的依赖关系,那么m2e的依赖关系搜索可以是向pom.xml添加依赖关系的最快方法

脚步 :

  1. 单击pom.xml中的Dependencies选项卡(A)
  2. 点击添加(B)
  3. 通过groupId/artifactId(C)搜索依赖项
  4. 双击搜索结果中所需的一个,将其直接添加到您的pom.xml(D)

AD标记在以下快照中: 在此输入图像描述


在IntelliJ Idea中查找依赖项

在IntelliJ中,查找依赖项要容易得多.您需要做的就是确保maven中央仓库已被IntelliJ索引,如下所示:

在此输入图像描述

然后,进入pom,做一个dep+ Tab(或这里显示的Alt+ ),这就是你得到的: Insert在此输入图像描述

如果您所在的类具有未解析的导入,则快速修复程序会为您提供搜索和添加相应的maven存储库的选项,方法是在缺少的类/包上执行Alt+ Enter: 在此输入图像描述

真棒,我说!



Aff*_*ffe 26

Hibernate Validator 3.1不是JSR303提供程序.您需要升级到Hibernate Validator 4或更高版本.


Kof*_*Kof 23

没有Hibernate,这发生在我身上.

在我的电脑上运行良好,它在我的EC2 Linux服务器上无效.

原因是存在validation-api-1.0.0.GA.jar文件/usr/share/tomcat/lib.

一旦validation-api-1.0.0.GA.jar被删除,它的工作太棒了.