我目前正在使用Spring MVC Web应用程序,并尝试使用@Valid注释来连接验证。当我启动应用程序时,我会得到以下例外:

javax.validation.ValidationException: Unable to find a default provider

我有Hibernate验证器3.1.0.GA在类路径上以及Javax验证1.0.0.GA,Hibernate Core 3.3.1.GA和Hibernate注释3.4.0.GA.

我看不到的那些版本中是否有无兼容性,还是有人想到我仍然在课堂路径上使用Hibernate验证器获得此例外的任何原因?

干杯,

帽子

有帮助吗?

解决方案

Hibernate验证器3.1不是JSR303提供商。您需要升级到Hibernate验证器4或更高版本。

其他提示

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

要解决,请添加此Maven依赖性 冬眠验证器注释处理器.

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-validator-annotation-processor</artifactId>
  <version>4.1.0.Final</version>
</dependency>

这是该文物的最新稳定版本,从 这里


寻找依赖性的通用方式

假设你有AA NoClassDefFoundError 说明班级 org.postgresql.Driver 没找到。

  1. 使用jarvana搜索可以提供的依赖性 org.postgresql.Driver 像这样: http://www.jarvana.com/jarvana/search?search_type=class&java_class = org.postgresql.driver 这使enter image description here

  2. 将上述依赖性转化为Maven依赖格式:

    <dependency>
        <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
       <version>9.1-901.jdbc4</version>
     </dependency>
    
  3. 通过搜索像 这个 :
    g:"postgresql" AND a:"postgresql"
    (在哪里 g 代表GroupID和 a 代表Artifactid)

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


使用M2E查找依赖关系

如果您对所需的依赖关系有大概的想法,或者可以找出所需的列表,则 M2E的依赖性搜索可能是向您的pom.xml添加依赖关系的最快方法

脚步 :

  1. 单击pom.xml中的依赖项选项卡(a)
  2. 单击添加(b)
  3. 搜索groupid/artifactid(c)的依赖性
  4. 双击搜索结果中所需的一个,以将其直接添加到您的pom.xml(d)

在以下快照中标记的广告:enter image description here


在Intellij Idea中查找依赖项

在Intellij中,查找依赖性要容易得多。您需要做的就是确保Maven Central存储库已被Intellij索引:

enter image description here

然后,进入POM,做一个 dep+标签 (或一个 alt+插入 如图所示 这里),这就是您得到的:enter image description here

如果您在具有未解决的导入的类中 alt+进入 在缺少的类/软件包上:enter image description here

太棒了!


这发生在我没有冬眠的情况下。

在我的PC上运行良好,它在我的EC2 Linux服务器上不起作用。

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

一次 validation-api-1.0.0.GA.jar 删除,效果很好。

就我而言,我遇到了同样的问题,但是由于Maven下载的最终版本4.1.8.最终版本已损坏。我转向版本4.1.6.最终版本,然后开始工作。我正在使用STS和春季存储库。

希望这对某人有帮助。

在相同的情况下,我仅更新我的JAR版本,仅用于从Hibernate-not-and-and-and-and-and-common-Common-Onnotation到Hibernate4 Anotations的吞咽,如下所示。对于冬眠4,您可以使用此罐子 -

1-Hibernate-Commons-Annotations-4.0.5.Final 2-Hibernate-Validator-4.2.0.-Final

希望这也对您有用。

我收到以下错误:

Init方法的调用失败;嵌套例外是Javax.Validation.ValidationException:无法获得可用的提供商解析器

我在我的Web-Inf/lib目录中发现 以下两个JAR文件中存在验证器的版本:

  • org.springframework.context-3.1.1.release.jar
  • com.springsource.javax.validation-1.0.0.ga.jar

我从Web-Inf/lib目录中删除了com.springsource.javax.validation-validation-1.0.0.0.ga.jar,因为它较早并且不再支持。这样做之后,我的应用程序正常工作。我从其他帖子中学到了我的问题与类路径上同一文件的重复版本有关。我弄清楚了哪个文件在阅读后引起了问题 春季3验证

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top