• 调用webservice接口,数据不回滚问题
    使用cxf+spring框架开发webservice接口,在开发一个具有保存数据的接口功能时,如果数据发生了异常,对service层无论使用了xml配置声明式事务管理还是使用了使用@Transactional注解声明式事务管理,数据均不会回滚;在debug代码和查询相关资料后,个人觉得数据不会回滚的原因:调用webservice接口时,发生的异常并没有在service被spring捕获到,而是直接抛出给调用接口的客户端,所以就没有回滚。这时候就需要在抛出异常的地方手动回滚事务。

  • 手动回滚事务原理
    org.springframework.transaction.support.TransactionTemplate:可以在service层方法中添加事务,Spring为我们提供了一种方法就是使用TransactionTemplate类;我们要为TransactionTemplate装配一个TransactionManager,调用TransactionTemplate实例的execute()方法将执行包含在TransactionCallback实例里的代码。如果代码出现异常,调用TransactionStatus对象的setRollbackOnly()将事务回滚。否则,如果doInTransaction()方法 正常返回,事务将被提交。

  • 手动回滚事务相关代码实现

xml文件配置

      <!-- **************下面为事务控制相关配置:  手动方式******************** --><!-- JDBC事务管理器 注意:事务管理器传的参数是数据源--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"  scope="singleton" ><property name="dataSource"><ref bean="dataSource" /></property></bean><!-- 声明事务模板 --><bean id="transactionTemplate"class="org.springframework.transaction.support.TransactionTemplate"><property name="transactionManager"><ref bean="transactionManager" /></property></bean>

java代码

    /** 注入声明式事物模板*/@Resourceprivate JdbcDbDAO pubjdbcDAO;@Resourceprivate TransactionTemplate transactionTemplate;public String SavePhysicianOrder(final String zyid,final String yzsllx,final String DATA_BUSINESS) {// TODO Auto-generated method stub//开始事务,如果出现状况则回滚String execute = transactionTemplate.execute(new TransactionCallback<String>() {String jsonStr="";//返回值@Overridepublic String doInTransaction(TransactionStatus ts) {try {// 使用JdbcTemplate进行持久化层操作String delSQL="DELETE FROM ZYGL_YZMXB";//封装好的JdbcTemplateint exeRnt=pubjdbcDAO.execSQL(delSQL);//封装J好的dbcTemplateif(exeRnt <= 0){jsonStr="操作失败!!";}else{jsonStr="操作成功!!";}                 }catch (Exception e) {ts.setRollbackOnly();jsonStr="数据发生异常,异常信息:"+e.getLocalizedMessage();return jsonStr;}// 如果成功,事务被提交return jsonStr;}});return execute;}

调用webservice接口,数据不回滚问题相关推荐

  1. android调用web接口,Android调用webservice 接口

    以查询手机号码归属地的Web service为例,它的wsdl为 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public cl ...

  2. VC++使用Soap ToolKit3.0调用WebService接口

    由于项目需要,需要实现VC调用WebService接口,之前没接触过这个,所以花了一天找了点资料,并自己编写了demo. 1. 首先看了Soap相关资料,见http://www.w3school.co ...

  3. Spring 事务方法与非事务方法相互调用 @Transactional 注解失效不回滚?

    写这篇文章的初衷呢就是最近遇到了一个Spring事务的大坑.与其说是坑,还不如说是自己事务这块儿太薄弱导致的(自嘲下). 项目环境 Spring Boot 下面开始问题描述,发生的过程有点长,想直接看 ...

  4. PHP调用WebService接口

    WebService是一个提供外部使用的一个服务,使用PHP去调用它其实是很简单的,写一个demo如下: 1.首先你的PHP要支持SOAP 检测PHP是否支持SOAP打印phpinfo(),如下图说明 ...

  5. 调用webservice接口,报错:(十六进制值0x01)是无效的字符。

    文章目录 #事故现场 #分析 #解决方法 #事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符. 如图: 意思是webservice返回的信息中包含无效的字符,无法解析成 ...

  6. HttpClient调用WebService接口

    文章目录 前言 WebService是什么? WebService原理? HttpClient是什么? HttpClient应用场景? 使用HttpClient调用WebService接口 1.创建H ...

  7. JAVA使用HttpClient调用webservice接口

    JAVA使用HttpClient调用webservice接口 关于HttpClient用法参考: HttpClient-4.5.2官方教程完整翻译 官方教程原文链接 HttpClient下载地址: 链 ...

  8. java调用webservice接口(.asmx)

    前几天对接阿里云短信接口时,需要调用其他系统的数据,该系统开发人员给我提供了webservice接口.对于从来没见过webservice接口的我,真的是一脸懵.现在把记录一下,方便自己以后用,说不定也 ...

  9. java 调用webservice 接口,并解析返回参数

    java 调用webservice 接口,并解析返回参数 1. 设置传参,例如以下格式: // 确定传参格式以及赋值 String reqXml = "<createAppParam& ...

最新文章

  1. 豆瓣评分 9.3 的 Java 巨著 | Bruce Eckel 重讲 Java 的编程思想
  2. python 学习之FAQ:find 与 find_all 使用
  3. 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
  4. Leetcode python《热题 HOT 100》1. 两数之和
  5. c#简单自定义异常处理日志辅助类
  6. 用python玩转数据测试答案_大学慕课2020用Python玩转数据章节测试答案
  7. powderdesinger显示中英文表名
  8. 【美团外卖】美食知识图谱的迭代及应用
  9. 基于FPGA的深度学习CNN加速器设计
  10. Apple苹果iOS数据丢失如何恢复?
  11. 【聚类分析】基于FCM聚类实现交通干道车流量聚类分析及预测含Matlab源码
  12. python第二版课后答案第七章7.5_IDA7.5 启动基础配置
  13. DDL、DML、DQL、DCL、DTL MySQL常用语法大全
  14. JVM结构和JVM的架构模型以及JAVA生命周期介绍
  15. java 获取百度云盘图片_java 利用百度云识别图片文字
  16. Pico VR 一体机初测
  17. Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档
  18. HDMI上电信号分析
  19. The Sandbox阐释对元宇宙平台的愿景
  20. microsoft WINDOWS 系统错误代码

热门文章

  1. Nature好文:过去150年,科学与产业经历四段情缘!
  2. IBM用量子计算机成功模拟分子,登上《自然》封面
  3. 麦肯锡全球调研160个案例,发布5个行业34个AI应用场景
  4. 字节跳动教育裁员:赔付方式N+2
  5. 三本毕业后,我进入了世界五百强
  6. 情人节,你刚表白,而我已经开始选哪里拍婚纱照了~
  7. Linux virtualenv, virtualenvwrapper, pip freeze
  8. 游戏编程入门之碰撞检测
  9. java成员变量和局部变量的初始化和内存中的运行机制
  10. ES6与canvas实现鼠标小球跟随效果