Activiti工作流中工作流配置资源的上传实现

     在activiti工作流中的将工作流文件通过activit-probe的deployment部署文件。实现原理如下。通过activiti-probe中调用commons-fileupload将文件上传到并部署。源代码如下:

 

Java代码   收藏代码
  1.   

 

 

Java代码   收藏代码
  1. package org.activiti.rest.api.repository;  
  2.   
  3. import java.util.List;  
  4.   
  5. /** 
  6.  * @author Tijs Rademakers 
  7.  */  
  8. public class DeploymentUploadResource extends SecuredResource {  
  9.     
  10.   @Post  
  11.   public void uploadDeployment(Representation entity) {  
  12.     try {  
  13.       if(authenticate(SecuredResource.ADMIN) == falsereturn;  
  14.         
  15.       RestletFileUpload upload = new RestletFileUpload(new DiskFileItemFactory());  
  16.       List<FileItem> items = upload.parseRepresentation(entity);  
  17.         
  18.       FileItem uploadItem = null;  
  19.       String successMethod = null;  
  20.       for (FileItem fileItem : items) {  
  21.         if(fileItem.getName() != null) {  
  22.           uploadItem = fileItem;  
  23.         } else if(fileItem.getFieldName().equals("success")){  
  24.           successMethod = fileItem.getString();  
  25.         }  
  26.       }  
  27.         
  28.       DeploymentBuilder deploymentBuilder = ActivitiUtil.getRepositoryService().createDeployment();  
  29.       String fileName = uploadItem.getName();  
  30.       if (fileName.endsWith(".bpmn20.xml")) {  
  31.         deploymentBuilder.addInputStream(fileName, uploadItem.getInputStream());  
  32.       } else if (fileName.endsWith(".bar") || fileName.endsWith(".zip")) {  
  33.         deploymentBuilder.addZipInputStream(new ZipInputStream(uploadItem.getInputStream()));  
  34.       } else {  
  35.         throw new ActivitiException("File must be of type .bpmn20.xml, .bar or .zip");  
  36.       }  
  37.       deploymentBuilder.name(fileName);  
  38.       deploymentBuilder.deploy();  
  39.       StringBuilder html = new StringBuilder();  
  40.       html.append("<html>\n");  
  41.       html.append("  <script type=\"text/javascript\">\n");  
  42.       html.append("    " + successMethod + "()\n");  
  43.       html.append("   </script>\n");  
  44.       html.append("</html>\n");  
  45.       getResponse().setEntity(html.toString(), MediaType.TEXT_HTML);  
  46.         
  47.     } catch (Exception e) {  
  48.       throw new ActivitiException(e.getMessage(), e);  
  49.     }  
  50.   }  
  51. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值