有关Transaction not successfully started问题解决的方法
我的项目配置:struts2+hibernate3.3+spring3.2.5
主要问题:在进行更新和提交操作时出现下面异常
- org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Transaction not successfully started
我这里主要是为了解决延迟载入session关闭问题。所以用到了Session session = this.sessionFactory.getCurrentSession();而不是 this.sessionFactory.openSessiong();
getCurrentSession和openSessiong的差别这个问题网上有非常多博客都写到了。比方:http://blog.csdn.net/woisnong/article/details/7423986;
说重点。为什么会出现以上问题呢,我这里是由于使用了spring来管理事务;以下是我的事务配置
- <!-- 使用annotation定义事务 --><!-- 支持 @Transactional 标记 -->
- <tx:annotation-driven transaction-manager="transactionManager" />
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
然后在全部的dao层加入注解
- @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
使用了spring来管理事物,就能够去掉开启事务和提交事务。例如以下将这两句代码凝视掉就可以。
- //session.beginTransaction();
- //session.getTransaction().commit();
这里參考了这篇博客:http://blog.csdn.net/woisnong/article/details/7423962
有关spring管理事务这里另一篇比較好的博客推荐一下:http://www.blogjava.net/robbie/archive/2009/04/05/264003.html
完整异常为:
type Exception report
message Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Transaction not successfully started
description The server encountered an internal error that prevented it from fulfilling this request.
exception
- org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Transaction not successfully started
- org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:661)
- org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755)
- org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)
- org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475)
- org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270)
- org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
- org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
- org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
- com.sun.proxy.$Proxy12.add(Unknown Source)
- com.phn.service.impl.TopicServiceImpl.add(TopicServiceImpl.java:76)
- com.phn.action.TopicAction.add(TopicAction.java:37)
- sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- java.lang.reflect.Method.invoke(Method.java:606)
- com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
- com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
- org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
- org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.phn.interceptor.UserInterceptor.doIntercept(UserInterceptor.java:35)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
- org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562)
- org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
- com.phn.interceptor.UEditorFilter.doFilter(UEditorFilter.java:32)
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230)
- org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
root cause
- org.hibernate.TransactionException: Transaction not successfully started
- org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:131)
- org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:657)
- org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755)
- org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724)
- org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475)
- org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270)
- org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
- org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
- org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
- com.sun.proxy.$Proxy12.add(Unknown Source)
- com.phn.service.impl.TopicServiceImpl.add(TopicServiceImpl.java:76)
- com.phn.action.TopicAction.add(TopicAction.java:37)
- sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- java.lang.reflect.Method.invoke(Method.java:606)
- com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
- com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
- org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
- org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- com.phn.interceptor.UserInterceptor.doIntercept(UserInterceptor.java:35)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
- org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
- org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562)
- org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
- com.phn.interceptor.UEditorFilter.doFilter(UEditorFilter.java:32)
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230)
- org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.50 logs.
有关Transaction not successfully started问题解决的方法的更多相关文章
- springframework hibernate Transaction not successfully started
先贴出错误:org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transac ...
- hibernate - Transaction not successfully started
今天在测试 transaction(使用事务进行管理)的时候, 总报错: Transaction not successfully started 可能有多种原因, 这位哥们总结得很好: Transa ...
- eclipse环境下无法创建android virtual Devices(AVD)问题解决的方法汇总
首先,要在eclipse环境下成功的创建一个安卓虚拟机,须要有三项东西,第一就是eclipse,第二就是android SDK Manager,第三就是ADT,也就是eclipse环境下的一个安卓虚拟 ...
- DataSource绑定DataTable.Select()显示system.data.DataRow问题解决的方法
有时候我们须要在控件中绑定DataTable中设定条件过滤后的数据,此时,在winForm环境中,一些控件不能正确绑定并显示数据内容.这是由于DataTable.Select()返回的是DataRow ...
- sublime text 3中文乱码问题解决的方法
一.首先要确保本机sublime已经有安装包管理器,假设没有.安装方法:http://blog.chinaunix.net/uid-12014716-id-4269991.html 文中的第一步:安装 ...
- Appscan安装问题记录 + 最后问题解决的方法 和安装步骤
最后环节有问题,无法创建常规任务,腰折, 估计是在安装环节不可以忽略下面的报错,有空解决一下这个问题 解决: 安装了一个虚拟机W7系统 可以安装成功 appscan9.0.3要W8的系统 最后装了ap ...
- 关于Spring中applicationContext.xml配置错误“org/springframework/transaction/interceptor/TransactionInterceptor”的问题解决
问题描述: 在配置spring的applicationContext.xml中的默认事务管理器的时候可能会出现这样的错误: Error occured processing XML 'org/spri ...
- VCenter中嵌套openstack VM不能ping通外部网络问题解决的方法
问题描写叙述: 近期搭建了vCenter环境,并使用vCenter创建的VM搭建了一套openstack环境.在验证openstack的外网功能时.发现报文死活ping不通外网,抓包发现报文在vcen ...
- 安装apk时出现错误Failure [INSTALL_FAILED_DEXOPT]问题解决的方法
在android4.0源码里面编译出来apk后,用adb install (或adb install -r 重装)安装时,报错[INSTALL_FAILED_DEXOPT]. xu@xu-PC:~$ ...
随机推荐
- curl批处理从官方demo封装
官方demo // 创建一对cURL资源 $ch1 = curl_init(); $ch2 = curl_init(); // 设置URL和相应的选项 curl_setopt($ch1, CURLOP ...
- Activity启动过程简要介绍
无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层的ActivityManagerSe ...
- Contest20140705 testA 二分
testA 输入文件: testA.in 输出文件testA.out 时限2000ms 问题描述: 有一个城市拥有N个节点,被M条有权无向路径连接.现在你要在一个地方(可以在路径上当然也可以在节点上) ...
- touchend与click顺序
http://www.w3cmm.com/javascript/touch.html click 在 touchend之前 去除超链接的虚线框 http://www.cnblogs.com/kingw ...
- Cxf soap协议改成1.2
在和.net做联调的时候,报错: A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint. 看来是soap协议不匹配 ...
- Mongo的导出工具mongoexport介绍
需求介绍:将mongodb中的数据以文件的方式导出:json或cvs格式 mongo 提供了mongoexport的工具,可以实现将库中的数据以json或cvs的格式输出到文件中.mongoexpor ...
- 用F340 GPIO做I2C
在和Qinheng开发小尺寸点灯治具中,F340和FPGA采用I2C通信,其中F340作为I2C的主机,I2C端口用自己的GPIO编写,总结遇到的问题及注意事项: 1. F340端口及上拉电阻设置: ...
- android 一个页面内 多个listview的实现
如果很平常的两个listview组件竖直放在linearLayout布局中,结果是: 两个listview 很独立,中间似乎有个分割线,完全吧他们分离了,各自独立滚动,如果上面的listview把整个 ...
- C语言基础课程 第四课 它山之石可以攻玉---C语言数据类型和表达式
1 C语言中的数据类型 1.1 常量 常量就是在程序中不可变化的量 1.1.1 #define #define MAX 10 Define;//定义了一 ...
- 余弦距离、欧氏距离和杰卡德相似性度量的对比分析 by ChaoSimple
1.余弦距离 余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量. 向量,是多维空间中有方向的线段,如果两个向量的方向一致,即夹角接近零,那么这两个向 ...