若依项目分模块集成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 ...
随机推荐
- Grafana 安装及 Windows 应用程序服务配置工具 NSSM使用
网址:https://blog.csdn.net/kk185800961/article/details/83515382 1.进入conf文件,将 defaults.ini 复制一份,命名为cust ...
- Gitlab构建分布式版本控制系统
一 安装依赖 1.sudo yum install curl policycoreutils openssh-server openssh-clients 2.sudo systemctl enabl ...
- linux----------centos6.4安装完了以后敲ifconfig,没有局域网ip。解决如下
1.vim /etc/sysconfig/network-scripts/ifcfg-eth0 进入linux然后进入这个文件里面如下: DEVICE=eth0 HWADDR=00:0C:29:92: ...
- fiddler学习总结--autoresponder替换资源
意义:替换服务器返回的内容 1.找到需要替换的目标 2.选择目标后,点击“autoresponder”-->”add rules” 3.在下图中,选择“find a file”,再选择需要替换 ...
- caffe-ssd安装GPU版本和CPU的区别
在CPU中1.CPU_ONLY :=1的注释取消掉 2.BLAS := atlas 在GPU中 1.USE_CUDNN := 1的注释取消 2.BLAS := open
- CSS注意点
案例: 实际开发中,这样写:
- codeforces 982B Bus of Characters
题意: 有n排座位,每排有两个座位,每排座位的宽度都不一样. 有2 * n个人要上车,如果是内向的人,那么它会选择一排两个都是空位并且宽度最小的一排去坐: 如果是外向的人,会选择一排座位已经有人坐的, ...
- 面试(I)
即时通讯 为什么要TCP连接建立3次? 假设是2次: 假如在第1次客户端向服务器端发送请求因为阻塞,客户端会再次给服务器端发送请求,这次服务器端和客户端建立了连接.这样双方就可以发送数据了,发送完以后 ...
- 解决mysql中文乱码问题?
mysql是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 cre ...
- vue运行时 eslint 报“import/first” WARN deprecated browserslist 问题解决
vue运行时 eslint 报“import/first” WARN deprecated browserslist 问题解决 这个信息的意思是导入文件顺序不对,绝对导入应该放在相对导入前面.将绝对 ...