读书人

请问spring3.1和hibernate4整合中的一

发布时间: 2012-08-07 14:54:48 作者: rapoo

请教spring3.1和hibernate4整合中的一个问题
我在整合spring3.1和hibernate4的时候发现了一个问题,就是spring去创建sessionFactory的时候,报java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext的错误。具体的错误如下:

Java code
java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext    at java.lang.ClassLoader.defineClass1(Native Method)    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)    at java.security.AccessController.doPrivileged(Native Method)    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:591)    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)    at org.unitils.orm.hibernate.util.HibernateSessionFactoryLoader.createSessionFactoryBean(HibernateSessionFactoryLoader.java:63)    at org.unitils.orm.hibernate.util.HibernateSessionFactoryLoader.getConfiguredOrmPersistenceUnit(HibernateSessionFactoryLoader.java:38)    at org.unitils.orm.common.OrmModule.getConfiguredPersistenceUnit(OrmModule.java:181)    at org.unitils.orm.common.OrmModule.getPersistenceUnit(OrmModule.java:136)    at org.unitils.orm.hibernate.HibernateModule$1.getSpringPlatformTransactionManager(HibernateModule.java:102)    at org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager.doStartTransaction(DefaultUnitilsTransactionManager.java:117)    at org.unitils.database.transaction.impl.DefaultUnitilsTransactionManager.activateTransactionIfNeeded(DefaultUnitilsTransactionManager.java:110)    at org.unitils.database.DatabaseModule.activateTransactionIfNeeded(DatabaseModule.java:234)    at org.unitils.database.DatabaseModule.getDataSourceAndActivateTransactionIfNeeded(DatabaseModule.java:218)    at org.unitils.orm.hibernate.util.HibernateSessionFactoryLoader.getDataSource(HibernateSessionFactoryLoader.java:78)    at org.unitils.orm.hibernate.util.HibernateSessionFactoryLoader.createSessionFactoryBean(HibernateSessionFactoryLoader.java:48)    at org.unitils.orm.hibernate.util.HibernateSessionFactoryLoader.getConfiguredOrmPersistenceUnit(HibernateSessionFactoryLoader.java:38)    at org.unitils.orm.common.OrmModule.getConfiguredPersistenceUnit(OrmModule.java:181)    at org.unitils.orm.common.OrmModule.getPersistenceUnit(OrmModule.java:136)    at org.unitils.orm.common.OrmModule.injectOrmPersistenceUnitIntoTestObject(OrmModule.java:322)    at org.unitils.orm.common.OrmModule$OrmTestListener.beforeTestSetUp(OrmModule.java:367)    at org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:273)    at org.unitils.UnitilsJUnit4TestClassRunner$TestListenerInvokingMethodRoadie.runBeforesThenTestThenAfters(UnitilsJUnit4TestClassRunner.java:151)    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)    at org.unitils.UnitilsJUnit4TestClassRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:95)    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61)    at org.unitils.UnitilsJUnit4TestClassRunner.access$000(UnitilsJUnit4TestClassRunner.java:44)    at org.unitils.UnitilsJUnit4TestClassRunner$1.run(UnitilsJUnit4TestClassRunner.java:62)    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)    at org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:68)    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: java.lang.ClassNotFoundException: org.hibernate.context.CurrentSessionContext    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)    at java.security.AccessController.doPrivileged(Native Method)    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)    ... 47 more 


hibernate的配置文件如下:
Java code
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <!--指定连接的语言-->        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>        <!-- 数据源的名称 -->        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>        <!--设置连接数据库的用户名-->        <property name="hibernate.connection.username">root</property>        <!--设置连接数据库的密码-->        <property name="hibernate.connection.password">root</property>        <!--设置显示sql语句方便调试-->        <property name="hibernate.show_sql">true</property>        <property name="current_session_context_class">thread</property>                <!-- 配置映射 -->        <property name="configurationClass">org.hibernate.cfg.AnnotationConfiguration</property>        <mapping class="com.bao.sample.s3h4.domain.User" />    </session-factory></hibernate-configuration>

请高手帮小弟看一下该如何解决,万分感谢

[解决办法]
有没有把hibernate的配置文件引入到spirng配置里 去啊

这个异常就是说没找到类,要没没配置 要么路径写错了

读书人网 >J2EE开发

热点推荐