关闭

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

75人阅读 评论(0) 收藏 举报
分类:

     在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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22156次
    • 积分:711
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:75篇
    • 译文:0篇
    • 评论:0条
    文章分类