关于若依分模块创建项目可参考: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的更多相关文章

  1. 分模块创建maven项目(一)

    maven是一个项目构建和管理的工具. 我们可以通过maven仓库可以实现管理构建(主要是JAR还包括:WAR,ZIP,POM等等). 我们可以通过maven插件可以实现编译源代.产生Javadoc文 ...

  2. java分模块项目在idea中使用maven打包失败(ps:maven常用到的命令)

    一.分模块项目打包失败 情况:项目是分模块创建的,一些公共的方法是单独的一个模块common,其他模块依赖于此模块,poom依赖已经添加了,项目可以正常运行,但使用maven打包时出现了问题:找不到依 ...

  3. java使用maven项目(二)分模块开发

    1       整合ssh框架 1.1     依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况 叫 依赖传递 1.2     依赖版本冲突的解决 1.  第 ...

  4. 基于SpringBoot构建分模块项目

    前言 步骤过于详细,多图慎入!!! 假设一个场景,要开发一个4s店维修部的办公系统,其功能有:前台接待,维修抢单,财务结算,库存管理.于是我们创建一个项目balabalabala写完交工. 一段时间后 ...

  5. spring+springmvc+hibernate架构、maven分模块开发样例小项目案例

    maven分模块开发样例小项目案例 spring+springmvc+hibernate架构 以用户管理做測试,分dao,sevices,web层,分模块开发測试!因时间关系.仅仅測查询成功.其它的准 ...

  6. ssm集成(maven)& 分模块开发--详细教程

    1 maven版本的ssm 1.1 最简单的版本步骤: (1) 创建maven web项目 (2) 在pom.xml中导入依赖的jar包 (3) 再写配置文件: web.xml <!DOCTYP ...

  7. vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】

    基于 vue-cli 2 实现,vue 多模块.vue多项目集成工程 Github项目地址 : https://github.com/BothEyes1993/vue-multi-module 目标: ...

  8. Maven02——回顾、整合ssh框架、分模块开发、私服

    1 回顾 1.1 Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建 可跨平台 应用在大型项目可提高开发效率 1.2 Maven安装部署配置 1.3 Maven的仓库 本地仓库 远 ...

  9. nginx_tcp模块集成到openresty(安装ngx_tcp_lua_module模块)

    git地址:https://github.com/bigplum/nginx-tcp-lua-module openresty 本身是使用http协议进行通讯的, 但是项目中经常有要求输入是使用tcp ...

随机推荐

  1. Android Studio--》Gradle Scripts配置说明

    什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 安装 ...

  2. 自动微分(AD)学习笔记

    1.自动微分(AD) 作者:李济深链接:https://www.zhihu.com/question/48356514/answer/125175491来源:知乎著作权归作者所有.商业转载请联系作者获 ...

  3. 【LeetCode每天一题】Length of Last Word(字符串中最后一个单词的长度)

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  4. 2018-2019-1 20189203《Linux内核原理与分析》第三周作业

    一.课程学习 计算机的三个法宝:存储程序计算机.函数调用堆栈.中断. 堆栈相关的寄存器:ESP(堆栈指针).EBP(基址指针). 堆栈操作:push:栈顶地址减少4个字节,并将操作数放入栈顶存储单元. ...

  5. python中的双冒号作用

    Python序列切片地址可以写为[开始:结束:步长],其中的开始和结束可以省略. 1. range(n)生成[0,n)区间整数 2. 开始start省略时,默认从第0项开始 3. 结尾省略的时候,默认 ...

  6. phpstudy----------phpstudy开启apache日志并且按照日期划分创建。

    1.CustomLog "|bin/rotatelogs.exe logs/access_%Y_%m_%d.log 86400 480" combined 这里修改成上图所示,然后 ...

  7. linux之tree命令

    linux下tree命令的用法解释 2018年03月22日 ⁄ RakSmart教程 ⁄ 共 583字 ⁄ 字号 小 中 大 ⁄ linux下tree命令的用法解释已关闭评论 tree命令,主要功能是 ...

  8. JVM探秘5---JVM监控命令大全

    jps命令---查看JVM进程状况 格式为:jps [options] [hostid] 功能描述: jps是用于查看有权访问的hotspot虚拟机的进程. 当未指定hostid时,默认查看本机jvm ...

  9. 修复svn hook导致的字符集错误

    修改pre-commit钩子,如果返回中文信息,可能会报如下错误: Error output could not be translated from the native locale to UTF ...

  10. docker基本部署

    一.基本概念docker 1.镜像(Image) Docker 镜像就是一个只读的模板. 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用 ...