首页 > 代码库 > spring整合hibernate,在获取sessionFactory的时候报错,求解决办法!!

spring整合hibernate,在获取sessionFactory的时候报错,求解决办法!!

applicationContext.xml文件

 <!-- 开启扫包 -->
    <context:component-scan base-package="cn.edu"></context:component-scan>


<!-- 配置sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="http://www.mamicode.com/classpath:hibernate.cfg.xml"/> <property name="dataSource"> <bean class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="http://www.mamicode.com/com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="http://www.mamicode.com/jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"/> <property name="user" value="http://www.mamicode.com/root"/> <property name="password" value="http://www.mamicode.com/root"/> <!-- 其他配置 --> <!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 --> <property name="initialPoolSize" value="http://www.mamicode.com/3"></property> <!--连接池中保留的最小连接数。Default: 3 --> <property name="minPoolSize" value="http://www.mamicode.com/3"></property> <!--连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize" value="http://www.mamicode.com/5"></property> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement" value="http://www.mamicode.com/3"></property> <!-- 控制数据源内加载的PreparedStatements数量。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 --> <property name="maxStatements" value="http://www.mamicode.com/8"></property> <!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 --> <property name="maxStatementsPerConnection" value="http://www.mamicode.com/5"></property> <!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <property name="maxIdleTime" value="http://www.mamicode.com/1800"></property> </bean> </property> </bean>

hibernate.cfg.xml文件

    <!-- 方言 -->    <property name="hibernate.dialect">        org.hibernate.dialect.MySQL5Dialect    </property>    <!-- 显示sql -->    <property name="hibernate.show_sql">true</property>    <!-- 自动建表 -->    <property name="hibernate.hbm2ddl.auto">update</property>

    <!-- 映射信息 -->
    <!-- <mapping resource="cn/edu/domain/User.hbm.xml" /> -->

 

测试类

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class SSHTest {    @Resource    private SessionFactory sessionFactory;        @Test    public void demo() {        System.out.println(sessionFactory);    }}

 

报错信息

21:35:29,495 ERROR TestContextManager:315 - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@6e105df8] to prepare test instance [cn.edu.test.SSHTest@74897d3b]java.lang.IllegalStateException: Failed to load ApplicationContext    at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:157)    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:103)    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:73)    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:313)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288)    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:284)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88)    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)    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.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:1486)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:589)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:106)    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:57)    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100)    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248)    at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:124)    at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:148)    ... 24 moreCaused 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:1704)    at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1654)    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1445)    at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:720)    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)    ... 39 moreCaused by: java.lang.reflect.InvocationTargetException    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:606)    at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:118)    ... 47 moreCaused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory    at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:383)    at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:109)    ... 52 moreCaused by: javax.validation.ValidationException: Unable to instantiate Configuration.    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:272)    at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)    at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:380)    ... 53 moreCaused by: java.lang.NullPointerException    at java.util.ResourceBundle.getBundle(ResourceBundle.java:1026)    at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.loadBundle(ResourceBundleMessageInterpolator.java:202)    at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.getFileBasedResourceBundle(ResourceBundleMessageInterpolator.java:182)    at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:81)    at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:73)    at org.hibernate.validator.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:57)    at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:43)    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269)    ... 55 more

求解决!!!!

spring整合hibernate,在获取sessionFactory的时候报错,求解决办法!!