更新时间:2024-11-01 GMT+08:00
分享

方式2:在已有项目中部署流程引擎流程SDK

流程引擎不仅支持以独立服务的方式部署流程引擎流程SDK,还支持以依赖引入的方式嵌入用户已存在的项目中,进行定制化二次开发,提供可直接调用的base内置Service方法,减少网络IO。

如下操作以Windows 11操作系统的本地服务器为例。

准备事项

在部署流程引擎流程SDK之前,需要提前准备如下事项。

  • Oracle官网下载和安装推荐使用的JDK版本。

    推荐使用的JDK版本:JDK 8 以上版本。

  • 根据开发需要,下载并安装开发工具,例如Eclipse IDE、IntelliJ IDEA等。

    本文以IntelliJ IDEA开发工具为例。

  • 获取SDK包和License文件。关于如何获取SDK包请参见应用发布

操作步骤

  1. 解压缩已获取的SDK包。
  2. 将解压缩后“design”“runtime”文件夹下“lib”文件夹中的所有文件引入到已有的Maven工程中。

    1. “resources”目录下,单击File > Project Structure
    2. 在弹出的窗口中,选择Modules > Dependencies,单击+ > JARs or Directories…
    3. 全选“lib”文件夹下的所有文件,单击“OK”
    4. 单击“Apply”

  3. 将已获取的License文件复制到已有的Maven工程中,例如“D:\workspace\sdk-test\src\main\resources\lic\license.dat”

    如果您当前暂未申请License,且获取的SDK包处于免费使用期,可跳过此配置。

  4. 在启动类上方添加如下注解。

    @SpringBootApplication
    @EnableSffRedisHttpSession

  5. 在启动类中添加System.setProperty()方法,设置系统属性。

    // 流程编排服务
    System.setProperty("hwenvironment", "uat");
    SpringApplication.run(WfDefinitionDemoApplication.class, args);
    
    //流程运行服务
    System.setProperty("hwenvironment", "uat");
    SpringApplication.run(WorkflowRuntimeApplication.class, args);
    • 流程编排服务完整的示例代码如下:
      package com.sdk;
      
      import com.huawei.it.plm.definitiondemo.WfDefinitionDemoApplication;
      import com.huawei.org.springframework.session.data.redis.config.annotation.web.http.EnableSffRedisHttpSession;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      @EnableSffRedisHttpSession
      public class SdkDesignApplication {
          public static void main(String[] args) {
              System.setProperty("hwenvironment", "uat");
              SpringApplication.run(WfDefinitionDemoApplication.class, args);
          }
      }
    • 流程运行服务完整的示例代码如下:
      package com.sdk;
      
      import com.huawei.it.workflowdemo.WorkflowRuntimeApplication;
      import com.huawei.org.springframework.session.data.redis.config.annotation.web.http.EnableSffRedisHttpSession;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      @EnableSffRedisHttpSession
      public class SdkRuntimeApplication {
          public static void main(String[] args) {
              System.setProperty("hwenvironment", "uat");
              SpringApplication.run(WorkflowRuntimeApplication.class, args);
          }
      }

  6. 在已有的Maven工程中,添加SDK启动配置。

    1. 单击SdkApplication > Edit Configurations...
    2. 在弹出的窗口中,单击“Environment variables”
    3. 在弹出的窗口中,单击,依次添加对应资源的配置信息。

      请根据实际的资源规划(流程引擎流程SDK),参考资源配置说明(流程引擎流程SDK),按需添加。

      图1 添加环境变量
    4. 单击“OK”

  7. 在已有的Maven工程中,单击,启动项目。
  8. 完成部署后,流程引擎支持如下几种验证方式。您可以根据实际情况选择验证。

    • 方式一:查看服务日志
      执行如下命令,查看服务日志。
      tail -f xdm.log

      显示结果为类似如下信息,则说明启动成功。

      • 流程编排服务
        INFO  WfDefinitionDemoApplication:61 - Started WfDefinitionDemoApplication in xxx seconds
      • 流程运行服务
        INFO  WorkflowRuntimeApplication:61 - Started WorkflowRuntimeApplication in xxx seconds
    • 方式二:调用指定接口

      启动“startDesign.bash”“startRuntime.bash”脚本文件后,约等待2分钟,调用如下健康检查接口,查询服务是否正常启动。

      http://{部署服务器的IP地址}:{部署服务器的端口号}${流程编排服务文根/流程运行服务文根}/health/check

      如果返回如下信息,则说明启动成功。

      true
    • 方式三:访问可视化页面

      如果您已在资源规划(流程引擎流程SDK)中规划了单点登录的相关资源/云服务,并在部署时配置了单点登录信息,可以选择此方式进行验证。

      在浏览器中访问如下地址,查看服务是否启动成功。

      • 流程编排服务
        http://{承载流程编排服务的服务器域名或IP地址}:{流程编排服务的端口号}/{流程编排服务文根}/index.html#/processApplicationForm?tenantId=-1&applicationId={应用ID}
      • 流程运行服务
        http://{承载流程运行服务的服务器域名或IP地址}:{流程运行服务的端口号}/{流程运行服务文根}/wfAdminIndex.html#/process-tasks?tenantId=-1&applicationId={应用ID}

      转入流程引擎登录页面,输入登录账号和登录密码,成功登录并进入流程引擎页面,即表示启动成功。

异常处理

引入SDK包下的文件到Maven工程时,可能会存在引入失败的情况。如下图所示:

图2 引入失败的JAR包

您可以参考如下操作进行修复。

  1. 右键单击引入失败的JAR包,选择“Add as Library”
  2. 在弹出的窗口中,选择“Classes”,单击“OK”
  3. 在弹出的窗口中,将“Level”设置为“Module Library”,单击“OK”
    图3 添加Library

相关文档