activiti流程启动问题汇总


一、报:org.activiti.engine.ActivitiException: couldn't find type for XXX 错误

解决办法:将XXX类以及其依赖的其他类实现java.io.Serializable接口
二、报:

 org.activiti.engine.impl.javax.el.PropertyNotFoundException: Cannot resolve identifier

解决办法:
保证serviceTask中 activiti:delegateExpression对应的javabean是在spring容器中管理的 
三、报:

writing aborted; java.io.NotSerializableException: org.activiti.workflow.simple.converter.json.SimpleWorkflowJsonConverter

解决办法:重启服务器试试

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果 Activiti 没有启动流程,那么任务也不会被创建和分配给相应的用户或组。因此,你不能获取到还不存在的任务。 如果你想获取流程定义中的任务节点信息,可以使用 Activiti 的 API 获取任务节点的信息,例如任务名称、任务处理人等。你可以通过以下代码获取当前流程定义中所有任务节点的信息: ```java ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionKey("processDefinitionKey") .singleResult(); BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId()); Collection<FlowElement> flowElements = bpmnModel.getMainProcess().getFlowElements(); for (FlowElement flowElement : flowElements) { if (flowElement instanceof UserTask) { UserTask userTask = (UserTask) flowElement; System.out.println("Task Name: " + userTask.getName()); System.out.println("Task Assignee: " + userTask.getAssignee()); System.out.println("Task Candidate Groups: " + userTask.getCandidateGroups()); System.out.println("Task Candidate Users: " + userTask.getCandidateUsers()); } } ``` 上述代码中,我们首先使用 `repositoryService` 对象获取指定流程定义的 `ProcessDefinition` 对象,然后使用 `repositoryService` 对象获取流程定义的 `BpmnModel` 对象,通过 `BpmnModel` 对象可以获取流程定义中的所有节点信息。在循环处理节点信息时,我们只处理 `UserTask` 类型的节点,获取任务的名称、处理人和候选人等信息。 需要注意的是,上述代码只能获取流程定义中的任务节点信息,而不能获取已经创建的任务信息。如果需要获取已经创建的任务信息,可以使用 Activiti 的 API 查询已经创建的任务,例如: ```java List<Task> tasks = taskService.createTaskQuery() .processDefinitionKey("processDefinitionKey") .taskAssignee("user") .list(); for (Task task : tasks) { System.out.println("Task Name: " + task.getName()); System.out.println("Task Assignee: " + task.getAssignee()); System.out.println("Task Candidate Groups: " + task.getCandidateGroups()); System.out.println("Task Candidate Users: " + task.getCandidateUsers()); } ``` 上述代码中,我们使用 `taskService` 对象创建了一个查询任务的查询对象,通过指定任务的处理人、流程定义的标识等条件来查询已经创建的任务。在循环处理任务信息时,我们同样可以获取任务的名称、处理人和候选人等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值