zoukankan      html  css  js  c++  java
  • 若依项目分模块集成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

    感谢若依群里大牛【表面】、【難得糊塗】的技术支持。

  • 相关阅读:
    CloudStack 4.2 与CloudStack 4.1二级存储API发生变化
    添加虚拟机磁盘扩容步骤
    NAT概述
    CloudStack全局参数
    在 Web 项目中应用 Apache Shiro
    使用 Spring Security 保护 Web 应用的安全
    获取浏览器的homepage
    剑指offer系列——2.替换空格
    剑指offer系列——1.二维数组中的查找
    JDK下载需要Oracle账号登录问题
  • 原文地址:https://www.cnblogs.com/conswin/p/9803122.html
Copyright © 2011-2022 走看看