目录

环境信息集成pom添加依赖信息配置说明启动应用默认会新建数据结构

常见问题汇总与收集1. 启动后无法正常初始化数据结构

附官方资料

环境信息

springboot: 2.3.6.RELEASE flowable: 6.7.0

集成

pom添加依赖信息

org.flowable

flowable-spring-boot-starter

6.7.0

另: 参考代码中涉及到使用lombok插件的内容可以通过手动编码方式还原或引入lombok依赖。

配置说明

配置详见: org.flowable.spring.boot.FlowableProperties

SpringBoot集成flowable的starter后,如果已经集成了数据库相关内容,就不再需要任何设置就可以完成集成(flowable 的ProcessEngineConfiguration默认实现 SpringProcessEngineConfiguration已经完成了ataSource注入) ,如需对其进行配置,可通过Autowired注入SpringProcessEngineConfiguration或ProcessEngineConfiguration进行修改 如:

import lombok.extern.slf4j.Slf4j;

import org.flowable.engine.ProcessEngineConfiguration;

import org.flowable.spring.SpringProcessEngineConfiguration;

import org.flowable.spring.boot.EngineConfigurationConfigurer;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;

import org.springframework.context.annotation.Configuration;

@Slf4j

@Configuration

public class FlowableConfig implements EngineConfigurationConfigurer {

@Autowired

DataSourceProperties dataSourceProperties;

@Override

public void configure(SpringProcessEngineConfiguration springProcessEngineConfiguration) {

springProcessEngineConfiguration.setJdbcUrl(dataSourceProperties.getUrl());

springProcessEngineConfiguration.setJdbcUsername(dataSourceProperties.getUsername());

springProcessEngineConfiguration.setJdbcPassword(dataSourceProperties.getPassword());

springProcessEngineConfiguration.setJdbcDriver(dataSourceProperties.getDriverClassName());

springProcessEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

log.info("url:{}",springProcessEngineConfiguration.getJdbcUrl());

log.info("url:{}",springProcessEngineConfiguration.getDataSource());

}

}

当然,修改连接信息亦可以通过配置文件进行配置来完成,如上只是举例获取配置对象的一种方式。

启动应用默认会新建数据结构

flowable的默认配置将会自动更新数据结构(详见org.flowable.spring.boot.FlowableProperties) 可通过如下配置进行关闭

flowable:

database-schema-update: false

常见问题汇总与收集

1. 启动后无法正常初始化数据结构

此问题目前已知存在如下三种可能:

配置中database-schema-update 设定了false,导致自动更新被关闭,此种情况可以通过配置文件或ProcessEngineConfiguration的示例手动设置。 使用mysql5.7以上版本,数据库中已经有相关的数据结构(如有自定义修改建议手动增量修改,此处不做讨论)或其他schema存在相关表;此类问题多存在于多个环境使用同一个数据库实例,虽然分了schema,但是仍不能初始化成功;此类问题可通过jdbc中url的配置增加nullCatalogMeansCurrent=true 指定在未指定数据库目录(catalog)时,将当前数据库目录作为默认值,如:

spring:

datasource:

password: root

username: root

url: jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true

当然,也可以通过限制当前使用的数据库用户权限来完成(限定当前用户无权访问其他schema下的flowable相关表)。 需要注意的时,这类问题表现方式不仅仅是相关表创建不成功,部分情况下还表现为表创建不完整等问题,此类问题建议按如下思路排查:

JDBC连接信息是否正确设置是否正确,如 database-schema-update、nullCatalogMeansCurrent等当报错不明晰时须优先解决日志显示问题(本测试使用日志组件为logback)适当升级或降低版本已避免版本bug引起的问题(不建议优先考虑)框架的不规范使用,此类问题常表现为相关bean未正常注入,可通过测试代码注入Bean的方式测试是否正确配置(如SpringBootTest+ Autowired)。

已知的版本bug,此类问题不常见,多半出在sql执行过程中明显的报错,可通过异常信息进行判断,此类文件建议进行小版本的升级。

附官方资料

中文资料 https://tkjohn.github.io/flowable-userguide/#_advanced 官网原版 https://www.flowable.com/open-source/docs/bpmn/ch05a-Spring-Boot

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: