问答详情
源自:5-4 添加事务管理-Spring整合Hibernate

Could not open Hibernate Session for transaction;是什么问题

点提交时出现这个错误

Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext


http://img2.mukewang.com/5e677e5900017b9e30001616.jpg


applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd

http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd">


<!-- 引入外部的属性文件 -->

<context:property-placeholder location="classpath:jdbc.properties"/>

<!-- 配置连接池 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

<property name="driverClass" value="${jdbc.driverClass}"/>

<property name="jdbcUrl" value="${jdbc.url}"/>

<property name="user" value="${jdbc.username}"/>

<property name="password" value="${jdbc.password}"/>

</bean>

<!-- 配置Hibernate的相关属性 -->

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

<!-- 注入连接池 -->

<property name="dataSource" ref="dataSource"/>

<!-- 配置Hibernate的属性 -->

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>

<prop key="hibernate.show_sql">true</prop>

<prop key="hibernate.format_sql">true</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

</props>

</property>

<!-- 加载Hibernate中的映射文件 -->

<property name="mappingResources">

<list>

<value>com/ssh/domain/Product.hbm.xml</value>

</list>

</property>

</bean>

<!-- 配置Action的类 -->

<bean id="productAction" class="com.ssh.action.ProductAction" scope="prototype">

<!-- 手动注入Service -->

<property name="productService" ref="productService"/>

</bean>


<!-- 配置业务层的类 -->

<bean id="productService" class="com.ssh.service.ProductService">

<property name="productDao" ref="productDao"/>

</bean>

<!-- 配置DAO的类 -->

<bean id="productDao" class="com.ssh.dao.ProductDao">

<property name="sessionFactory" ref="sessionFactory"/>

</bean>

<!-- 配置事务管理器 -->

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory"/>

</bean>

<!-- 开启注解事务 -->

<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>


提问者:J1nkang 2020-03-10 19:48

个回答

  • 慕梦前来
    2022-07-18 19:39:57

    是会话中止了吧