我正在使用像
这样的弹簧配置文件<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
p:basenames="WEB-INF/i18n/messages,WEB-INF/i18n/application"
p:fallbackToSystemLocale="false" />
<beans:bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<beans:property name="validationMessageSource" ref="messageSource" />
</beans:bean>
<annotation-driven validator="validator" />
<resources location="/, classpath:/META-INF/web-resources/" mapping="/resources/**" />
<default-servlet-handler/>
...
当我运行代码时,我得到错误
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'validator' defined in ServletContext resource
[/WEB-INF/spring/appServlet/servlet-context.xml]: Error setting property
values; nested exception is org.springframework.beans.PropertyBatchUpdateException;
nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException:
Property 'validationMessageSource' threw exception; nested exception is
java.lang.NoClassDefFoundError: org/hibernate/validator/resourceloading
/ResourceBundleLocator
为什么我收到此错误o使用messageSource定义了bean?
由于
答案 0 :(得分:2)
您使用的是不正确版本的Hibernate Validator。 Spring支持 4.x 。 Spring 4+将支持Hibernate 5.x 。
答案 1 :(得分:1)
我通过将此依赖项添加到我的maven pom来解决了这个问题。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.1.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
我正在使用spring framework 4.0.0.RELEASE