Spring MVC 使用Hibernate的校验框架错误:版本不兼容
context: TestDome
delegate: false
----------> Parent Classloader:
[email protected]
]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:680)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:577)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:562)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:248)
... 53 more
Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:662)
... 56 more
Caused by: java.lang.ClassNotFoundException: javax.validation.ParameterNameProvider
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1352)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
... 60 more
原因:spring4与hibernate的校验框架validator4不兼容。
解决办法:将hibernate的校验框架换成validator6:将原来的jar包替换掉
jar包:validation-api-2.0.1.Final.jar;classmate-1.3.4.jar;hibernate-validator-6.0.13.Final.jar;jboss-logging-3.3.2.Final.jar