91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

activiti如何部署bpmn/bar文件

發布時間:2021-12-08 13:47:05 來源:億速云 閱讀:352 作者:小新 欄目:云計算

這篇文章給大家分享的是有關activiti如何部署bpmn/bar文件的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

當配置好工作流,啟動工作流。我們的第一步就是配置bpmn、bar、bpmn20.xml等文件。

部署bpmn的簡單代碼:

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.createDeployment()
  .addClasspathResource("org/activiti/test/AssigneeUserAndGroup.bpmn")
  .deploy();

簡單解釋:創建一個部署引擎DeploymentBuilder,然后通過addClasspathResource把文件路徑設置進去(最起碼activiti需要知道部署哪一個文件啊),然后啟動部署方法deploy()。

addClasspathResource()方法其實就是把文件讀入到一個輸入流中,然后調用addInputStream()方法。addInputStream()主要是創建一個資源類,然后設置名稱,字節,并且把這個資源給deployment實體

public DeploymentBuilder addInputStream(String resourceName, InputStream inputStream) {
    if (inputStream==null) {
      throw new ActivitiIllegalArgumentException("inputStream for resource '"+resourceName+"' is null");
    }
    byte[] bytes = IoUtil.readInputStream(inputStream, resourceName);
    ResourceEntity resource = new ResourceEntity();
    resource.setName(resourceName);
    resource.setBytes(bytes);
    deployment.addResource(resource);
    return this;
  }

  public DeploymentBuilder addClasspathResource(String resource) {
    InputStream inputStream = ReflectUtil.getResourceAsStream(resource);
    if (inputStream==null) {
      throw new ActivitiIllegalArgumentException("resource '"+resource+"' not found");
    }
    return addInputStream(resource, inputStream);
  }



所以也可以直接調用addInputStream(String resourceName, InputStream inputStream)進行文件的部署。

注意:單獨部署一個bpmn文件,png會在底層BpmnDeployer中分解出來,并且保存到數據庫中。

如果一個部署中涉及到多個文件,我們可以打包一起部署,例如方法addZipInputStream(ZipInputStream zipInputStream),其實addZipInputStream會把這個包下面的所有文件逐一找出來,然后創建資源類,設置到deployment實體中。

public DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream) {
    try {
      ZipEntry entry = zipInputStream.getNextEntry();
      while (entry != null) {
        if (!entry.isDirectory()) {
          String entryName = entry.getName();
          byte[] bytes = IoUtil.readInputStream(zipInputStream, entryName);
          ResourceEntity resource = new ResourceEntity();
          resource.setName(entryName);
          resource.setBytes(bytes);
          deployment.addResource(resource);
        }
        entry = zipInputStream.getNextEntry();
      }
    } catch (Exception e) {
      throw new ActivitiException("problem reading zip input stream", e);
    }
    return this;
  }



下面說說.bar文件怎么打包:

(1)把文件都拷到同一目錄下面

activiti如何部署bpmn/bar文件
 

(2)對diagrams文件夾進行打包

diagrams.zip

(3)修改文件的擴展名diagrams.bar

感謝各位的閱讀!關于“activiti如何部署bpmn/bar文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连云港市| 民县| 内黄县| 平顺县| 文成县| 肇州县| 宁阳县| 双鸭山市| 长丰县| 佛教| 琼中| 新建县| 康乐县| 钦州市| 宁化县| 洛扎县| 霸州市| 卢氏县| 凯里市| 沿河| 河西区| 日土县| 墨竹工卡县| 宁河县| 盐山县| 论坛| 正定县| 久治县| 唐海县| 建水县| 广汉市| 河南省| 庄浪县| 鄄城县| 抚远县| 乌拉特前旗| 乌审旗| 凤凰县| 灯塔市| 宁阳县| 昌都县|