<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 59, comments - 244, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    JBPM4.4發布zip流程包和流程圖顯示

    Posted on 2010-10-02 11:15 penngo 閱讀(8035) 評論(5)  編輯  收藏 所屬分類: JBPM
    上一篇在spring mvc下發布jbpm流程只介紹了發布jpdl的流程定義文件,并沒有把流程圖也一起發布,本篇將把流程定義文件和流程圖一起打包為zip格式發布。

    先介紹jbpm流程設計器開發(3)的代碼修改
    com.workflow.designer.view.Menu.java代碼,主要是增加生成圖片和把jpdl和圖片打包為zip文件。
     1saveItem.addActionListener(new ActionListener(){
     2            public void actionPerformed(ActionEvent e)
     3            {
     4                JFileChooser fileChooser = new JFileChooser();
     5                fileChooser.setFileFilter(new FileNameExtensionFilter("zip""zip"));
     6                int result = fileChooser.showSaveDialog(Menu.this);
     7                if(result == fileChooser.APPROVE_OPTION){
     8                    String path = fileChooser.getSelectedFile().getAbsolutePath();
     9                    Map<String, InputStream> map = new Hashtable<String, InputStream>();
    10                    SaveJpdl saveJpdl = new SaveJpdl();
    11                    saveJpdl.save(map, gv.getGraph());    
    12                    try{
    13                        Color bg = null;
    14                        bg = gv.getBackground();
    15                        BufferedImage image = mxCellRenderer
    16                        .createBufferedImage(gv.getGraph(), null1, bg,
    17                                gv.isAntiAlias(), gv.getLayoutAreaSize(),
    18                                gv.getCanvas());
    19                        ByteArrayOutputStream bs = new ByteArrayOutputStream(); 
    20                        ImageOutputStream imOut = ImageIO.createImageOutputStream(bs); 
    21                        ImageIO.write(image, "png", imOut);
    22                        InputStream is = new ByteArrayInputStream(bs.toByteArray());
    23                        map.put("process.png", is);
    24                        ZipUtil.saveZip(path + ".zip", map);
    25                    }

    26                    catch(Exception ex){
    27                        ex.printStackTrace();
    28                    }

    29                }

    30            }

    31        }
    );

    ZipUtil生成zip文件。
     1public class ZipUtil {
     2    //調用該方法生成zip文件
     3    public static void saveZip(String fileName, Map<String, InputStream> dataMap) {
     4        try {
     5            FileOutputStream fos = new FileOutputStream(fileName);
     6            JarOutputStream jos = new JarOutputStream(fos);
     7            byte buf[] = new byte[256];
     8            if (dataMap != null{
     9                Set<Entry<String, InputStream>> entrySet = dataMap.entrySet();
    10                int len = -1;
    11                for (Entry<String, InputStream> entry : entrySet) {
    12                    String name = entry.getKey();
    13                    InputStream inputStream = entry.getValue();
    14                    if (name != null && inputStream != null{
    15                        BufferedInputStream bis = new BufferedInputStream(
    16                                inputStream);
    17                        JarEntry jarEntry = new JarEntry(name);
    18                        jos.putNextEntry(jarEntry);
    19
    20                        while ((len = bis.read(buf)) >= 0{
    21                            jos.write(buf, 0, len);
    22                        }

    23
    24                        bis.close();
    25                        jos.closeEntry();
    26                    }

    27                }

    28            }

    29            jos.flush();
    30            jos.close();
    31            fos.flush();
    32            fos.close();
    33        }
     catch (Exception ex) {
    34            throw new RuntimeException(ex);
    35        }

    36    }

    37}

    繼續使用上一篇在spring mvc下發布jbpm流程代碼發布流程
    類com.mvc.rest.RestController修改
     1@Controller
     2public class RestController {
     3
     4    public RestController() {
     5
     6    }

     7
     8    @RequestMapping(value = "/welcome", method = RequestMethod.GET)
     9    public String registPost() {
    10        return "/welcome";
    11    }

    12
    13    @RequestMapping(value = "/deploy", method = RequestMethod.GET)
    14    public String deployRest() {
    15        return "/deploy";
    16    }

    17
    18
    19    @RequestMapping(value = "/end/{processId}", method = RequestMethod.GET)
    20    public void deployend(HttpServletRequest request,
    21            HttpServletResponse response, @PathVariable("processId") String processId) {    
    22        ProcessEngine processEngine = (ProcessEngine) SpringContextTool
    23        .getBean("processEngine");
    24        ProcessInstance processInstance = processEngine.getExecutionService().startProcessInstanceByKey("myprocess");
    25        ProcessDefinition processDefinition = processEngine.getRepositoryService().createProcessDefinitionQuery()
    26      .processDefinitionId(processInstance.getProcessDefinitionId())
    27      .uniqueResult();
    28        //獲取流程圖
    29        InputStream inputStream = processEngine.getRepositoryService().getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getImageResourceName());
    30        byte[] b = new byte[256];
    31        int len = -1;
    32        try{
    33             while((len = inputStream.read(b)) > 0{
    34                 response.getOutputStream().write(b, 0, len);
    35             }

    36             
    37             inputStream.close();
    38             response.getOutputStream().flush();
    39             response.getOutputStream().close();
    40        }

    41       catch(Exception e){
    42           e.printStackTrace();
    43       }

    44    }

    45    
    46    @RequestMapping(value = "/deployAction", method = RequestMethod.POST)
    47    public ModelAndView deployAction(HttpServletRequest request,
    48            HttpServletResponse response, ModelMap modelMap) {
    49        String realPath = request.getSession().getServletContext().getRealPath(
    50                "")
    51                + "/WEB-INF/deploy/"
    52        try {
    53            if (ServletFileUpload.isMultipartContent(request)) {
    54                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    55                for (Iterator it = multipartRequest.getFileNames(); it
    56                        .hasNext();) {
    57                    String key = (String) it.next();
    58                    MultipartFile file = multipartRequest.getFile(key);
    59                    if (file.getOriginalFilename().length() > 0{
    60                        String filename = file.getOriginalFilename();
    61                        
    62                        File saveFile = new File(realPath + filename);
    63                        FileOutputStream fos = new FileOutputStream(saveFile);
    64                        fos.write(file.getBytes());
    65                        fos.flush();
    66                        fos.close();
    67                        ProcessEngine processEngine = (ProcessEngine) SpringContextTool
    68                                .getBean("processEngine");
    69                        RepositoryService rs = processEngine.getRepositoryService();
    70                        File deployFile = new File(saveFile.getAbsolutePath());
    71                        if (deployFile.exists()) {
    72                            // 發布流程 
    73                            FileInputStream in = new FileInputStream(deployFile.getAbsolutePath());
    74                            ZipInputStream zin = new ZipInputStream(in);
    75                            String deploymentId = processEngine
    76                            .getRepositoryService().createDeployment().addResourcesFromZipInputStream(zin).deploy();
    77
    78                            modelMap.put("deploy""發布成功,版本號為:" + deploymentId);
    79                            in.close();
    80                            zin.close();
    81                        }

    82                    }

    83                }

    84            }

    85        }
     catch (Exception e) {
    86            modelMap.put("deploy""發布失敗!" );
    87            e.printStackTrace();
    88        }

    89
    90        return new ModelAndView("/end", modelMap);
    91    }

    92}

    WEB-INF/view增加文件end.jsp,主要用來顯示流程圖
     1<html>
     2<head>
     3<meta http-equiv="Content-Type" content="text/html; charset=GBK">
     4<title>流程發布</title>
     5</head>
     6<body>
     7<label><%=request.getAttribute("deploy")%></label>
     8<img src="end/myprocess" />
     9</body>
    10</html>

    運行效果:
    設計器生成帶jpdl和圖片的zip流程包。
    http://m.tkk7.com/pengo/
    把該流程保存為Test.zip。

    http://m.tkk7.com/pengo/

    http://m.tkk7.com/pengo/

    終于在國慶有空,把這一篇也寫了。正好在國慶把做過的東西,整理下。

    設計器:設計器程序
    源碼:jbpmspring









    評論

    # re: JBPM4.4發布zip流程包和流程圖顯示  回復  更多評論   

    2013-05-06 20:05 by 郭貝
    =====================================
    東西不錯 求源碼啊!下載不了 hanyijun85@163.com

    # re: JBPM4.4發布zip流程包和流程圖顯示[未登錄]  回復  更多評論   

    2013-10-22 14:44 by 小徐
    東西不錯 謝謝分享,求代碼+設計器 xujinbiao007@163.com

    # re: JBPM4.4發布zip流程包和流程圖顯示  回復  更多評論   

    2013-11-05 10:58 by zzz
    東西不錯 謝謝分享,求代碼+設計器 zhaozongzhan@163.com

    # re: JBPM4.4發布zip流程包和流程圖顯示  回復  更多評論   

    2014-02-19 10:40 by chenhua0725
    代碼下載不了,能不能發給我的呢?謝謝了 243857699@qq.com

    # re: JBPM4.4發布zip流程包和流程圖顯示  回復  更多評論   

    2016-02-18 14:49 by 班偉
    樓主。SpringContextTool這是個什么意思?
    主站蜘蛛池模板: 亚洲精品天堂成人片AV在线播放| 免费无码精品黄AV电影| 在线观看亚洲免费视频| 亚洲视频国产精品| 亚洲人成无码网站| 亚洲熟伦熟女新五十路熟妇| 欧洲美熟女乱又伦免费视频| 2021在线观看视频精品免费| 免费观看久久精彩视频| 黄 色一级 成 人网站免费| 最新亚洲人成网站在线观看| 亚洲精品123区在线观看| 久久久亚洲AV波多野结衣| 久久亚洲精品中文字幕无码 | 久久精品a亚洲国产v高清不卡| 亚洲精品第一国产综合精品99| 日韩伦理片电影在线免费观看| 国产人成免费视频网站| 老汉精品免费AV在线播放| 在线免费播放一级毛片| 久久WWW免费人成—看片| 一级毛片**免费看试看20分钟 | 国产精品国产免费无码专区不卡| 成人午夜性A级毛片免费| 精品国产无限资源免费观看| 精品免费久久久久久久| 91精品免费在线观看| 亚洲免费中文字幕| 美女被免费喷白浆视频| 18禁网站免费无遮挡无码中文| 18成禁人视频免费网站| 免费观看黄色的网站| 久久午夜免费视频| 成全视频在线观看免费高清动漫视频下载| 国产大片91精品免费观看不卡| **实干一级毛片aa免费| 在线视频观看免费视频18| 成年轻人网站色免费看| 国产jizzjizz视频全部免费| 亚洲精品和日本精品| 亚洲精品亚洲人成人网|