spring整合hibernate出现HibernateException: Unable to get the default Bean Validation factory

来源:互联网 发布:淘宝店运营商靠谱吗 编辑:程序博客网 时间:2024/05/17 08:22

我的xml配置如下:

[html] view plain copy
print?
  1. <?xml version=“1.0” encoding=“UTF-8”?>  
  2. <beans xmlns=“http://www.springframework.org/schema/beans”  
  3.     xmlns:context=“http://www.springframework.org/schema/context” xmlns:tx=“http://www.springframework.org/schema/tx”  
  4.     xmlns:aop=“http://www.springframework.org/schema/aop” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”  
  5.     xsi:schemaLocation=”http://www.springframework.org/schema/beans  
  6.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  7.            http://www.springframework.org/schema/context  
  8.             http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  9.            http://www.springframework.org/schema/aop  
  10.             http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
  11.            http://www.springframework.org/schema/tx  
  12.            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd”>  
  13.   
  14.   
  15.     <import resource=“classpath:beans.xml” />  
  16.     <context:property-placeholder location=“jdbc.properties” />  
  17.   
  18.     <!– springJdbc –>  
  19.     <bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource”  
  20.         destroy-method=“close”>  
  21.         <property name=“driverClassName” value={jdbc.driverClassName}"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"url"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"{jdbc.url}” />  
  22.         <property name=“username” value={jdbc.username}"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">property</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"password"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"{jdbc.password}” />  
  23.     </bean>  
  24.   
  25.   
  26.     <bean id=“sessionFactory”  
  27.         class=“org.springframework.orm.hibernate3.LocalSessionFactoryBean”>  
  28.         <property name=“dataSource” ref=“dataSource” />  
  29.         <property name=“hibernateProperties”>  
  30.             <value>  
  31.                 hibernate.dialect=org.hibernate.dialect.MySQLDialect  
  32.                 hibernate.show_sql=true  
  33.                 hibernate.hbm2ddl.auto=update  
  34.             </value>  
  35.         </property>  
  36.         <property name=“mappingResources”>  
  37.             <array>  
  38.                 <value>com/xiaohui/domain/User.hbm.xml</value>  
  39.             </array>  
  40.         </property>  
  41.     </bean>  
  42.   
  43.     <!– 配置事务管理器 –>  
  44.     <bean id=“transactionManager”  
  45.         class=“org.springframework.orm.hibernate3.HibernateTransactionManager”>  
  46.         <property name=“sessionFactory” ref=“sessionFactory”></property>  
  47.     </bean>  
  48.     <tx:annotation-driven transaction-manager=“transactionManager” />  
  49.   
  50. </beans>  
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd           http://www.springframework.org/schema/context            http://www.springframework.org/schema/context/spring-context-3.0.xsd           http://www.springframework.org/schema/aop            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd           http://www.springframework.org/schema/tx           http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">    <import resource="classpath:beans.xml" />    <context:property-placeholder location="jdbc.properties" />    <!-- springJdbc -->    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"        destroy-method="close">        <property name="driverClassName" value="${jdbc.driverClassName}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}" />    </bean>    <bean id="sessionFactory"        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="hibernateProperties">            <value>                hibernate.dialect=org.hibernate.dialect.MySQLDialect                hibernate.show_sql=true                hibernate.hbm2ddl.auto=update            </value>        </property>        <property name="mappingResources">            <array>                <value>com/xiaohui/domain/User.hbm.xml</value>            </array>        </property>    </bean>    <!-- 配置事务管理器 -->    <bean id="transactionManager"        class="org.springframework.orm.hibernate3.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory"></property>    </bean>    <tx:annotation-driven transaction-manager="transactionManager" /></beans>


 

 

错误信息如下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactory’ defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.Java:1420)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
 at org.springframework.beans.factory.support.AbstractBeanFactory1.getObject(AbstractBeanFactory.java:291)atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)atorg.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)atorg.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)atcom.xiaohui.test.UserServiceTest.testSave(UserServiceTest.java:15)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atorg.junit.runners.model.FrameworkMethod1.runReflectiveCall(FrameworkMethod.java:44)
 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
 at org.junit.runners.ParentRunner3.run(ParentRunner.java:193)atorg.junit.runners.ParentRunner1.schedule(ParentRunner.java:52)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
 at org.junit.runners.ParentRunner.access000(ParentRunner.java:42)atorg.junit.runners.ParentRunner2.evaluate(ParentRunner.java:184)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
 at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.hibernate.HibernateException: Unable to get the default Bean Validation factory
 at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:127)
 at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.java:1674)
 at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1624)
 at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1415)
 at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1345)
 at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
 at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
 … 34 more
Caused by: java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:118)
 … 42 more
Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
 at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:345)
 at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:106)
 … 47 more
Caused by: javax.validation.ValidationException: Unable to instantiate Configuration.
 at javax.validation.ValidationGenericBootstrapImpl.configure(Validation.java:272)atjavax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)atorg.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:342)48moreCausedby:java.lang.NullPointerExceptionatjava.util.ResourceBundle.getBundle(ResourceBundle.java:960)atorg.hibernate.validator.engine.ResourceBundleMessageInterpolator.loadBundle(ResourceBundleMessageInterpolator.java:202)atorg.hibernate.validator.engine.ResourceBundleMessageInterpolator.getFileBasedResourceBundle(ResourceBundleMessageInterpolator.java:182)atorg.hibernate.validator.engine.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:81)atorg.hibernate.validator.engine.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:73)atorg.hibernate.validator.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:57)atorg.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:43)atjavax.validation.ValidationGenericBootstrapImpl.configure(Validation.java:269)
 … 50 more

 

查了好久好久,最后发现找到的答案是:在sessionFactory的hibernateProperties属性中要在家上这样一个键值对!

javax.persistence.validation.mode=none

阅读全文
0 0