当将ServiceTasks与IntermediateTimerEvents一起使用时,有时由于ACT_RU_JOB表中引发的异常而未执行服务任务。 ACT_RU_JOB表中的EXCEPTION_MSG_列填充为表达式中使用的未知属性:#{serviceTask1.execute(execution)。该特定工作的价值。
请参阅下面随附的activiti工作流图像,以获得清晰的用例图。
注意:我正在使用使用maven的spring-boot微服务来运行工作流程。
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上的项目链接:https://github.com/cloudnativeview/spring-activiti-bpmn-kickstart
完全可以预见异常,因为在启动流程实例时未设置适当的流程变量。 Activiti引擎也无法解析命名的bean serviceTask1
。
从Activiti 5.22.0 userguide docs(在文件activiti-5.22.0.zip内部)中,更准确地说是8.5.3部分。 Java服务任务,您有4种方法来声明如何调用Java逻辑。
在BPMN流程定义文件中,您正在使用method expression
技术调用服务任务Java逻辑。如果要成功调用方法,则必须确保bean serviceTask1
是执行过程中的过程变量或Spring上下文中的命名对象。
不幸的是,您没有向BPM引擎提供有关在何处使用Java逻辑查找bean的必要信息。
我建议您执行以下步骤。