您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)activiti如何部署bpmn/bar文件的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
當配置好工作流,啟動工作流。我們的第一步就是配置bpmn、bar、bpmn20.xml等文件。
部署bpmn的簡單代碼:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment() .addClasspathResource("org/activiti/test/AssigneeUserAndGroup.bpmn") .deploy();
簡單解釋:創(chuàng)建一個部署引擎DeploymentBuilder,然后通過addClasspathResource把文件路徑設(shè)置進去(最起碼activiti需要知道部署哪一個文件?。?,然后啟動部署方法deploy()。
addClasspathResource()方法其實就是把文件讀入到一個輸入流中,然后調(diào)用addInputStream()方法。addInputStream()主要是創(chuàng)建一個資源類,然后設(shè)置名稱,字節(jié),并且把這個資源給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); }
所以也可以直接調(diào)用addInputStream(String resourceName, InputStream inputStream)進行文件的部署。
注意:單獨部署一個bpmn文件,png會在底層BpmnDeployer中分解出來,并且保存到數(shù)據(jù)庫中。
如果一個部署中涉及到多個文件,我們可以打包一起部署,例如方法addZipInputStream(ZipInputStream zipInputStream),其實addZipInputStream會把這個包下面的所有文件逐一找出來,然后創(chuàng)建資源類,設(shè)置到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)把文件都拷到同一目錄下面
(2)對diagrams文件夾進行打包
diagrams.zip
(3)修改文件的擴展名diagrams.bar
感謝各位的閱讀!關(guān)于“activiti如何部署bpmn/bar文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。