Javax.Validation.ValidationException:无法找到默认提供商
-
09-10-2019 - |
题
我目前正在使用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
没找到。
使用jarvana搜索可以提供的依赖性
org.postgresql.Driver
像这样: http://www.jarvana.com/jarvana/search?search_type=class&java_class = org.postgresql.driver 这使将上述依赖性转化为Maven依赖格式:
<dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901.jdbc4</version> </dependency>
通过搜索像 这个 :
g:"postgresql" AND a:"postgresql"
(在哪里g
代表GroupID和a
代表Artifactid)最后,将其添加到您的pom.xml
使用M2E查找依赖关系
如果您对所需的依赖关系有大概的想法,或者可以找出所需的列表,则 M2E的依赖性搜索可能是向您的pom.xml添加依赖关系的最快方法
脚步 :
- 单击pom.xml中的依赖项选项卡(a)
- 单击添加(b)
- 搜索groupid/artifactid(c)的依赖性
- 双击搜索结果中所需的一个,以将其直接添加到您的pom.xml(d)
在以下快照中标记的广告:
在Intellij Idea中查找依赖项
在Intellij中,查找依赖性要容易得多。您需要做的就是确保Maven Central存储库已被Intellij索引:
然后,进入POM,做一个 dep+标签 (或一个 alt+插入 如图所示 这里),这就是您得到的:
如果您在具有未解决的导入的类中 alt+进入 在缺少的类/软件包上:
太棒了!
这发生在我没有冬眠的情况下。
在我的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验证