Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 将ServiceTasks与activiti bpmn工作流中的TimerCachingEvents一起使用行为不一致_Spring Boot_Activiti - Fatal编程技术网

Spring boot 将ServiceTasks与activiti bpmn工作流中的TimerCachingEvents一起使用行为不一致

Spring boot 将ServiceTasks与activiti bpmn工作流中的TimerCachingEvents一起使用行为不一致,spring-boot,activiti,Spring Boot,Activiti,将ServiceTasks与IntermediateTimerEvents一起使用时,有时由于ACT_RU_作业表中引发的异常,它不会执行服务任务。ACT_RU_作业表中的EXCEPTION_MSG_uu列由表达式中使用的未知属性填充:{serviceTask1.ExecuteeExecution.value,用于该特定作业 请参考下面我所附的activiti工作流图像,以获得用例的清晰图片 注意:我正在使用SpringBootMicroService和maven来运行工作流 spring-

将ServiceTasks与IntermediateTimerEvents一起使用时,有时由于ACT_RU_作业表中引发的异常,它不会执行服务任务。ACT_RU_作业表中的EXCEPTION_MSG_uu列由表达式中使用的未知属性填充:{serviceTask1.ExecuteeExecution.value,用于该特定作业

请参考下面我所附的activiti工作流图像,以获得用例的清晰图片

注意:我正在使用SpringBootMicroService和maven来运行工作流

  spring-boot version: 1.5.5.RELEASE
  activity version: 5.22.0

 Activity and Connection Pool dependencies in pom.xml:  
  <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring-boot-starter-basic</artifactId>
        <version>${activiti.version}</version>
    </dependency>
  Connection Pooling dependency:
  <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jdbc</artifactId>
  </dependency>

  application.properties configuration attached below:
  spring.activiti.job-executor-activate=false
  spring.activiti.async-executor-enabled=true
  spring.activiti.async-executor-activate=true

  spring.datasource.tomcat.initial-size=15
  spring.datasource.tomcat.max-active=100
分析:我上面得到的错误是不一致的

Github上的项目链接:

由于启动流程实例时未设置适当的流程变量,因此完全可以预期出现异常。此外,Activiti引擎无法解析命名的bean serviceTask1

从文件activiti-5.22.0.zip的内部,更准确地说是第8.5.3节Java服务任务,您有4种方法来声明如何调用Java逻辑

指定实现JavaDelegate或ActivityBehavior的类。 计算解析为委托对象的表达式。 调用方法表达式。 计算值表达式。 在BPMN流程定义文件中,您正在使用方法表达式技术调用服务任务Java逻辑。如果您想成功调用您的方法,您必须确保您的bean serviceTask1是执行过程中的流程变量或Spring上下文中的命名对象

不幸的是,您没有向您的BPM引擎提供关于在何处使用Java逻辑查找bean的必要信息

我建议您执行以下步骤

从提供的链接中阅读技术和用户指南文档第8.5.3章Java服务任务。 尝试通过指定一个实现JavaDelegate或ActivityBehavior的类来调用Java逻辑。在我看来,第一次接触Activiti BPM引擎要容易得多。
您可以附加BPMN进程定义XML文件吗?您使服务任务异步了吗?@Abbaskarawala:我没有使服务任务异步,因为在我的用例中它不是必需的。我有一个发现,即当我将中间计时器事件与基于事件的网关一起使用时,它工作正常。@RokProdan:无法添加BPMN进程定义,因此我已在Github上共享项目链接。请在问题描述中找到链接。@cloudnativeview我在我的计算机上多次运行了您的代码,没有错误。您有任何更改吗?请让我逐一澄清。1正如您提到的,我没有正确设置流程变量,我只使用了一个流程变量,即计数器d在启动流程实例之前,我将传递相同的。请参考ActivityController,您将在其中找到API详细信息。2关于第二点,我使用了3个服务任务,并且为此创建了3个扩展JavaDelegate的类,我还重写了execute方法。在流程定义中,我还使用了表达式ty我不确定你指的是哪个项目。请检查请再检查一遍,如果你需要任何其他帮助,请告诉我。我指的是你在问题中提供的链接中的项目,也就是说,我想说的是你在A中遗漏了variableMap.putserviceTask1,new servicestask1;之类的内容如果您使用方法表达式调用Java逻辑,则使用ActivitiController。此外,我建议您使用activiti:class=com.cloudnativeview.workflows.service.ServiceTask1而不是activiti:expression={ServiceTask1.ExecuteeExecution}。这同样适用于BPMN流程定义XML文件中的所有其他服务任务。感谢您的快速响应,但无需将serviceTask1添加到变量映射中,因为这是一个服务任务类,与变量映射无关。正如您前面提到的,调用服务任务可以通过多种方式完成因此,我只是使用表达式方式,并指定java类名。直接来自Activiti 5.22.0的技术文档,用于在服务任务中使用方法表达式-您案例中的命名对象serviceTask1、serviceTask2和serviceTask3在执行过程变量中解析,如果适用,则在Spring上下文中解析。我正在处理同样的问题,祝你好运。