若依项目分模块集成uflo2
关于若依分模块创建项目可参考:https://www.cnblogs.com/conswin/p/9766186.html
了解uflo2,uflo2是一套由BSTEK自主研发的基于Java的工作流引擎,它以Spring为基础框架,采用Hibernate作为持久层,可运行于所有主流程应用服务器及流数据库之上的轻量级流程引擎。
其官方说明文档可参看:http://wiki.bsdn.org/pages/viewpage.action?pageId=30441763
下面主要记录一下若依项目中集成uflo2的具体步骤:
①、创建maven module项目取名为【ruoyi-uflo】,父项目选取若依的父项目,【ruoyi-uflo】的pom.xml中加入uflo依赖,如下所示,记得再将【ruoyi-uflo】依赖加入到【ruoyi-framework】中。
<description>
uflo2流程管理模块
</description> <properties>
<uflo.version>2.1.4</uflo.version>
</properties> <dependencies>
<!-- uflo2依赖包-->
<dependency>
<groupId>com.bstek.uflo</groupId>
<artifactId>uflo-console</artifactId>
<version>${uflo.version}</version>
</dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
<version>${ruoyi.version}</version>
</dependency>
</dependencies>
②、按下图所示,创建servletConfig、UfloConfig、TestEvnironmentProvide:
·
servletConfig具体代码:
@Configuration
public class ServletConfig {
@Bean
public ServletRegistrationBean buildUfloServlet(){
return new ServletRegistrationBean(new UfloServlet(),"/uflo/*");
}
}
UFloConfig具体代码:
@Configuration
public class UfloConfig { @Bean("localSessionFactoryBean")
public LocalSessionFactoryBean localSessionFactoryBean(DataSource dataSource) throws
PropertyVetoException, IOException {
LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setPackagesToScan("com.bstek.uflo.model*");
Properties prop = new Properties();
prop.put("hibernate.dialect","org.hibernate.dialect.MySQL5Dialect");
prop.put("hibernate.show_sql",false);
prop.put("hibernate.hbm2ddl.auto","update");
prop.put("hibernate.jdbc.batch_size",100);
sessionFactoryBean.setHibernateProperties(prop); return sessionFactoryBean;
} @Bean("ufloTransactionManager")
public HibernateTransactionManager ufloTransactionManager(SessionFactory sessionFactory){
HibernateTransactionManager hi = new HibernateTransactionManager();
hi.setSessionFactory(sessionFactory);
return hi;
} }
TestEvnironmentProvide具体代码:
@Component
public class TestEnvironmentProvider implements EnvironmentProvider {
@Autowired
private SessionFactory sessionFactory;
@Resource(name = "ufloTransactionManager")
private PlatformTransactionManager platformTransactionManager; @Override
public SessionFactory getSessionFactory() {
return sessionFactory;
} public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
} @Override
public PlatformTransactionManager getPlatformTransactionManager() {
return platformTransactionManager;
} public void setPlatformTransactionManager(PlatformTransactionManager platformTransactionManager) {
this.platformTransactionManager = platformTransactionManager;
} @Override
public String getLoginUser() {
return null;
} @Override
public String getCategoryId() {
return "anonymous";
} }
③、打开ruoyi-admin的配置启动类RuoYiApplication.java,导入uflo的配置文件,如下代码:
@ImportResource("classpath:uflo-console-context.xml")
④、启动若依,会自动在数据库生成uflo相应的数据表,访问:【待办任务】http://localhost/uflo/todo 或者 【流程设计】http://localhost/uflo/designer来验证是否集成成功。
⑤、部分问题解决策略
a、通过流程设计页面画好流程图进行发布部署时,会出现以下错误,导致部署失败:
解决办法:在pom文件中添加5.0.12版本的hibernate依赖,记得先将仓库里其他版本的删除后再更新。或者将uflo版本改到2.0.2 就不需要管hibernate的版本了。
我现在项目中用的是2.0.2版本,其他高的版本都会报以上错误,以上说的解决办法尝试了没有用。
在画流程图的时候,【会签任务】在处理会签任务完成规则时,如果选择图中设定,会导致发布失败。
解决办法:打开对应流程模板的xml文件,比如你设定的是【完成指定任务数】为1,观察xml中内容,你会发现xml中对应位置缺少了空格。
手动处理,加个空格即可。但这个修改后的xml不能在流程设计界面中发布,还是会报错的。在流程中心界面,通过【上传流程模板】按钮选择修改后的流程模板xml,进行发布即可。(满满的都是泪啊!!!)
b、【待办任务】页面中【待领取任务】点击后报错,弹出系统错误问题:
由于整个代码中并没有taskParticipators相关的代码,导致报错,目前无较好方法解决,可先屏蔽掉此功能。
参考文档:https://blog.csdn.net/zh_yi/article/details/82423967#commentBox
感谢若依群里大牛【表面】、【難得糊塗】的技术支持。
若依项目分模块集成uflo2的更多相关文章
- 分模块创建maven项目(一)
maven是一个项目构建和管理的工具. 我们可以通过maven仓库可以实现管理构建(主要是JAR还包括:WAR,ZIP,POM等等). 我们可以通过maven插件可以实现编译源代.产生Javadoc文 ...
- java分模块项目在idea中使用maven打包失败(ps:maven常用到的命令)
一.分模块项目打包失败 情况:项目是分模块创建的,一些公共的方法是单独的一个模块common,其他模块依赖于此模块,poom依赖已经添加了,项目可以正常运行,但使用maven打包时出现了问题:找不到依 ...
- java使用maven项目(二)分模块开发
1 整合ssh框架 1.1 依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况 叫 依赖传递 1.2 依赖版本冲突的解决 1. 第 ...
- 基于SpringBoot构建分模块项目
前言 步骤过于详细,多图慎入!!! 假设一个场景,要开发一个4s店维修部的办公系统,其功能有:前台接待,维修抢单,财务结算,库存管理.于是我们创建一个项目balabalabala写完交工. 一段时间后 ...
- spring+springmvc+hibernate架构、maven分模块开发样例小项目案例
maven分模块开发样例小项目案例 spring+springmvc+hibernate架构 以用户管理做測试,分dao,sevices,web层,分模块开发測试!因时间关系.仅仅測查询成功.其它的准 ...
- ssm集成(maven)& 分模块开发--详细教程
1 maven版本的ssm 1.1 最简单的版本步骤: (1) 创建maven web项目 (2) 在pom.xml中导入依赖的jar包 (3) 再写配置文件: web.xml <!DOCTYP ...
- vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】
基于 vue-cli 2 实现,vue 多模块.vue多项目集成工程 Github项目地址 : https://github.com/BothEyes1993/vue-multi-module 目标: ...
- Maven02——回顾、整合ssh框架、分模块开发、私服
1 回顾 1.1 Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建 可跨平台 应用在大型项目可提高开发效率 1.2 Maven安装部署配置 1.3 Maven的仓库 本地仓库 远 ...
- nginx_tcp模块集成到openresty(安装ngx_tcp_lua_module模块)
git地址:https://github.com/bigplum/nginx-tcp-lua-module openresty 本身是使用http协议进行通讯的, 但是项目中经常有要求输入是使用tcp ...
随机推荐
- Spring Boot事务管理(中)
在上一篇 Spring Boot事务管理(上)的基础上介绍Spring Boot事务属性和事务回滚规则 . 4 Spring Boot事务属性 什么是事务属性呢?事务属性可以理解成事务的一些基本配置, ...
- Linux3.10.0块IO子系统流程(0)-- 块IO子系统概述
前言:这个系列主要是记录自己学习Linux块IO子系统的过程,其中代码分析皆基于Linux3.10.0版本,如有描述错误或不妥之处,敬请指出! 参考书籍:存储技术原理分析--基于Linux 2.6内核 ...
- selenium启动Firefox失败
今天搭建java+selenium环境,搭建几次都失败,总结一下原因 1. selenium启动Firefox,不需要额外的driver 2. Friefox如果没有安装到默认路径C盘,代码中需要修改 ...
- javascript笔记——源生js实现each方法
出处:http://www.lovejavascript.com/#!zone/blog/content.html?id=48 jquery里面有个each方法,将循环操作简化.便捷. 随后es出了个 ...
- Oracle 10g收集数据库统计信息
1.需求概述 2.实施步骤 3.回退方案 1.需求概述 某数据库由于整体统计信息不准确,多次出现部分业务SQL选错执行计划,从而导致性能下降影响到最终用户体验,目前通过SQL_PROFILE绑定执行计 ...
- Software Testing 1 —— 有关编程错误的经历
最令我印象深刻的程序错误几乎都是那些细节,具体的记不清了,因为真的很细.他们不会报正常的错,要么是时而可以正常运行,时而不能正常运行但是没有报错,比如闪退或者持续运行没有输出:要么是报的错误意义很宽泛 ...
- Python之模块导入
import sys #import module (.py)import functools #名词空间 functoolsprint(functools) print("-------- ...
- 今天整理了一下Winform用的UI插件信息
平时主要用了一下几个比较好的UI控件: 1:IrisSkin2 皮肤插件.这是一款与编程开发相关的素材资源,主要是提供一些采用IrisSkin2.dll控件进行软件窗口换肤的素材文件,包括一些GIF图 ...
- Vue系列之 => webpack基础使用
webpack安装方式 1,运行 npm i webpack -g 全局安装. 2,在项目根目录中运行 npm i webpack --save-dev 安装到项目依赖中 项目目录 进入src运行, ...
- android studio 中如何合并冲突(转)
合并分支,解决冲突 执行Git merge ,如果有冲突,就会出现如下格式: <<<<<<< HEAD 这个位置的内容就是当前所在分支的内容 ======= ...