org.activiti.engine.ActivitiException: Couldn‘t serialize value ‘MyVariables
Activiti# 发起流程:
// 启动流程 task = flowService.startWorkflow()方法内参数未序列化
问题描述
提示:controller执行Activti方法参数错误,报异常后,执行两次控制器的方法
//付款申请则发起合并制单流程 (controllerc层调用流程方法)if(type.equals("付款申请")) {String markerNo=Utils.getSN("ME",4); //合并制单编号int markerId=appMarkerService.saveAppMarker(new AppMaker(Global.getConfig("res.appname"), applyNo, type,"合并制单", markerNo, Utils.formatNum2(fee), Utils.formatNum2(fee), "ids="+applyId,taskIdsStr));appMarkerService.mergeSubmit(markerId, null); //发起合并制单流程}
AppMaker appMaker(该实体类未序列化)
public String mergeSubmit(Integer id, String taskId) throws Exception {AppMaker appMaker=this.get(id); //获取制单信息内容(该实体类未序列化)SysUser user = UserUtils.getLoginUser();int userId = user.getId();Map<String, Object> variables = new HashMap<String, Object>();MyVariables myVariables = new MyVariables(user.getId(), user.getName(), user.getId(),user.getName(), appMaker.getNo(), appMaker.getId(), Constants.TASK_MERGE_MARKER_DESC, "", "","","", appMaker,"费用类型:"+appMaker.getType()+"<br>金额:"+appMaker.getFee());variables.put("myVariables", myVariables);variables.put("userId", userId); //申请的userid//出纳上传回单int receiver = systemService.getUser(Constants.ROLE_RECEIVER);variables.put("receiver", receiver);Task task = null;if (Utils.isEmpty(taskId)) {// 启动流程task = flowService.startWorkflow(Constants.MERGE_MARKER_AUDIT, id, variables, appMaker.getNo());} else {// TODOtask = taskService.createTaskQuery().taskId(taskId).singleResult();flowService.complete(taskId, variables, appMaker.getNo());}// 任务通知,短信flowService.flowPaymentNotice(task,id, "合并制单", Constants.TASK_MERGE_MARKER_DESC+"-" + task.getName(), "[" + user.getName() + "]已提交。", 0);//申请列表return "";}
方法异常后控制器执行了两次
原因分析:
提示:控制器未捕获方法异常:
例如:控制器使用throws Exception
未处理异常,导致项目方法异常后,控制器执行了两次。
解决方案:
提示:控制器去除
throws Exception
使用try catch
捕获异常并处理:
例如:
try {...(省略代码)//付款申请则发起合并制单流程if(type.equals("付款申请")) {String markerNo=Utils.getSN("ME",4); //合并制单编号int markerId=appMarkerService.saveAppMarker(new AppMaker(Global.getConfig("res.appname"), applyNo, type,"合并制单", markerNo, Utils.formatNum2(fee), Utils.formatNum2(fee), "ids="+applyId,taskIdsStr));appMarkerService.mergeSubmit(markerId, null); //发起合并制单流程}else {appMarkerService.saveAppMarker(new AppMaker(Global.getConfig("res.appname"), applyNo, type,"合并制单", Utils.formatNum2(fee), Utils.formatNum2(fee), "ids="+applyId));}return new Response(ResponseCode.STATUS_SUCCESS, "操作成功");}catch (Exception e) {// TODO: handle exceptione.printStackTrace();return new Response(ResponseCode.STATUS_ERROR);}
org.activiti.engine.ActivitiException: Couldn‘t serialize value ‘MyVariables相关推荐
- 解决工作流:org.activiti.engine.ActivitiException: Unknown property used in expression: ${AAAAA}报错
工作流流向有一个以上的流的方向的时候,必须指定流向,默认时用EL表达式表示,比如一个节点既可以流到A5也可以流到A6,当业务需要流向A5 的时候须指定流转条件${A5} 一条流程有多个流转条件的时候, ...
- org.activiti.engine.ActivitiException: couldn‘t resolve duedate问题的一个解决
今天在弄Activiti工作流部署一个简单的边界定时器 的一个流程, 并设置了边界定时器的时间为二十秒钟,再部署流程的时候,是可以的,然而在我启动流程实例的时候,报了这么一个错,检查之后 ,发现代码没 ...
- org.activiti.engine.ActivitiException: Couldn't deserialize object in variable 'application'
1.遇到工作流的问题第一个想到的,我觉得就是在添加流程变量的的时候,你的实体类有没有实现序列化接口 2.然后,再看其他的问题 3.今天遇到了这个问题,其他的都实现了序列化接口,以为不是这个问题,由于我 ...
- org.activiti.engine.ActivitiException: Couldn‘t deserialize object in variable ‘application‘
1.遇到工作流的问题第一个想到的,我觉得就是在添加流程变量的的时候,你的实体类有没有实现序列化接口 2.然后,再看其他的问题 3.今天遇到了这个问题,其他的都实现了序列化接口,以为不是这个问题,由于我 ...
- org.activiti.engine.ActivitiException: src-resolve: Cannot resolve the name 'extension' to a(n) 'ele
问题描述 无法将名称 'extension' 解析为 'element declaration' 组件 解决办法: 项目工作区有中文路径.
- org.activiti.engine.ActivitiOptimisticLockingException updated by another transaction concurrently
org.activiti.engine.ActivitiOptimisticLockingException: Task[id=5905010, name=审核(市场部)] was updated b ...
- activiti报错:org.activiti.engine.ActivitiTaskAlreadyClaimedException: Task ‘12502‘ is already claimed
在运行activiti时,报错信息如下: Exception in thread "main" org.activiti.engine.ActivitiTaskAlreadyCla ...
- org.activiti.engine.ActivitiIllegalArgumentException: inputStream for resource '**' is null 的解决办法
关于这个问题,是在使用Activiti流程引擎完成项目的建设的过程中遇到的,如下图: 具体内容如下: org.activiti.engine.ActivitiIllegalArgumentExcept ...
- 工作流引擎 Activiti 万字详细进阶
Activiti进阶 一.流程实例 什么是流程实例 流程实例(ProcessInstance)代表流程定义的执行实例. 一个流程实例包括了所有的运行节点.我们可以利用这个对象来了解当前流程实例的进度等 ...
最新文章
- 遥控车_vijos1458_纪中1724_水
- netstat 查看mysql_CentOS 使用netstat察看mysql端口和连接
- Linux下Anaconda3安装及使用教程
- java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big解决方法
- leetcode初级算法4.两个数组的交集 II
- linux常用命令 打开文件,【Linux】常用命令 lsof查看打开的文件
- python常用类型转换の方法
- mac os x 10.8 安装python-mysqldb
- Python面试题解答——第二部分企业面试题
- WCF创建Rest服务(附:.net2.0创建Rest服务)
- c获取当前程序的路径_漏洞挖掘|使用AFL Fuzzing网络程序
- 漫画:什么是删库跑路?
- unity黑白滤镜_Unity NGUI图片去色黑白效果
- 【LDC1314】电感传感器中文手册与检测原理介绍
- Could not create the Java Virtual Machine
- linux用c语言模拟抢票系统,C语言可以编写抢票软件吗
- 调试lan8720a遇到的奇葩问题,自动协商永远10M。
- 四象限法推导lm曲线_SEM数据分析四象限方法
- 数据分析----jupyter工具使用指导
- 联想小新触控板不行了