這篇文章給大家分享的是有關(guān)activiti如何部署bpmn/bar文件的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
濟(jì)源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
當(dāng)配置好工作流,啟動(dòng)工作流。我們的第一步就是配置bpmn、bar、bpmn20.xml等文件。
部署bpmn的簡(jiǎn)單代碼:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment() .addClasspathResource("org/activiti/test/AssigneeUserAndGroup.bpmn") .deploy();
簡(jiǎn)單解釋:創(chuàng)建一個(gè)部署引擎DeploymentBuilder,然后通過(guò)addClasspathResource把文件路徑設(shè)置進(jìn)去(最起碼activiti需要知道部署哪一個(gè)文件?。缓髥?dòng)部署方法deploy()。
addClasspathResource()方法其實(shí)就是把文件讀入到一個(gè)輸入流中,然后調(diào)用addInputStream()方法。addInputStream()主要是創(chuàng)建一個(gè)資源類,然后設(shè)置名稱,字節(jié),并且把這個(gè)資源給deployment實(shí)體
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)進(jìn)行文件的部署。
注意:?jiǎn)为?dú)部署一個(gè)bpmn文件,png會(huì)在底層BpmnDeployer中分解出來(lái),并且保存到數(shù)據(jù)庫(kù)中。
如果一個(gè)部署中涉及到多個(gè)文件,我們可以打包一起部署,例如方法addZipInputStream(ZipInputStream zipInputStream),其實(shí)addZipInputStream會(huì)把這個(gè)包下面的所有文件逐一找出來(lái),然后創(chuàng)建資源類,設(shè)置到deployment實(shí)體中。
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; }
下面說(shuō)說(shuō).bar文件怎么打包:
(1)把文件都拷到同一目錄下面
(2)對(duì)diagrams文件夾進(jìn)行打包
diagrams.zip
(3)修改文件的擴(kuò)展名diagrams.bar
感謝各位的閱讀!關(guān)于“activiti如何部署bpmn/bar文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!