<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    在spring mvc下發布jbpm流程

    Posted on 2010-09-07 00:55 penngo 閱讀(5500) 評論(3)  編輯  收藏 所屬分類: JBPM
    本篇使用到的相關技術內容:
    spring 3.0
    jbpm4.4
    hsqldb
    hibernate
    其中hsqldb和hibernate都是從jbpm4.4的lib文件夾里面拷過去的。
    本篇不再介紹jbpm與spring集成和spring mvc兩方面的內容,有需要,請看之前的文章
    jbpm4.3與spring集成請看http://m.tkk7.com/pengo/archive/2010/01/04/308219.html
    spring3.0 mvc和rest小例子請看http://m.tkk7.com/pengo/archive/2010/07/03/325164.html

    本篇只實現兩個功能,上傳流程定義文件和發布該上傳的流程定義文件。
    使用的流程定義文件是使用上一篇jbpm流程設計器生成的定義文件,
    有關jbpm流程設計器介紹,請看http://m.tkk7.com/pengo/archive/2010/08/31/330346.html

    流程圖:


    把流程圖保存為test.jpdl.xml
     1<?xml version="1.0" encoding="GBK"?>
     2<process name="process" xmlns="http://jbpm.org/4.4/jpdl">
     3<start name="開始" g="83,34,40,40">
     4    <transition name="to 任務" g="0,0" to="任務" />
     5</start>
     6<task name="任務" g="231,78,80,40">
     7    <transition name="to 結束" g="0,0" to="結束" />
     8</task>
     9<end name="結束" g="173,188,40,40" />
    10</process>


    RestController.java的發布處理代碼:

     1@RequestMapping(value = "/deployAction", method = RequestMethod.POST)
     2 public ModelAndView deployAction(HttpServletRequest request,
     3   HttpServletResponse response, ModelMap modelMap) {
     4  String realPath = request.getSession().getServletContext().getRealPath(
     5    "")
     6    + "/WEB-INF/deploy/"
     7  try {
     8   if (ServletFileUpload.isMultipartContent(request)) {
     9    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    10    for (Iterator it = multipartRequest.getFileNames(); it
    11      .hasNext();) {
    12     String key = (String) it.next();
    13     MultipartFile file = multipartRequest.getFile(key);
    14     if (file.getOriginalFilename().length() > 0{
    15      String filename = file.getOriginalFilename();
    16      File saveFile = new File(realPath + filename);
    17      FileOutputStream fos = new FileOutputStream(saveFile);
    18     //保存上傳的流程定義文件
    19      fos.write(file.getBytes());
    20      fos.flush();
    21      fos.close();
    22
    23      ApplicationContext ctx = new ClassPathXmlApplicationContext(
    24        "applicationContext.xml");
    25        //調用已定義的Bean
    26      ProcessEngine processEngine = (ProcessEngine) ctx
    27        .getBean("processEngine");
    28      File deployFile = new File(saveFile.getAbsolutePath());
    29      if (deployFile.exists()) {
    30       // 發布流程
    31       String deploymentId = processEngine
    32         .getRepositoryService().createDeployment()
    33         .addResourceFromFile(deployFile).deploy();
    34       System.out.println("========================ID:"
    35         + deploymentId);
    36       modelMap.put("deploy""發布成功,版本號為:" + deploymentId);
    37      }

    38
    39     }

    40    }

    41   }

    42  }
     catch (Exception e) {
    43   modelMap.put("deploy""發布失敗!" );
    44   e.printStackTrace();
    45  }

    46
    47  return new ModelAndView("/deploy", modelMap);
    48 }

    49

    deploy.jsp代碼:
     1<%@ page language="java" contentType="text/html; charset=GBK"
     2    pageEncoding="GBK"
    %>
     3<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4<html>
     5<head>
     6<meta http-equiv="Content-Type" content="text/html; charset=GBK">
     7<title>上傳</title>
     8</head>
     9<body>
    10<% 
    11    String deploy = request.getAttribute("deploy").toString();
    12
    %>
    13<script>
    14alert('<%=deploy%>');
    15
    </script>
    16<form name="upform" action="deployAction" method="POST" enctype="multipart/form-data">  
    17    &nbsp;&nbsp;&nbsp;&nbsp;
    18    <input type ="file" name="file1" id="file1"/>&nbsp;&nbsp;<br/>
    19    <!--  <input type ="file" name="file2" id="file2"/>&nbsp;&nbsp; -->
    20    <input type="submit" value="上傳" /><br/>  
    21  </form>  
    22</body>
    23</html>

    運行效果:




    本人測試環境:jdk6 + tomcat6.0.20
    源碼: jbpm4.4_spring3

    評論

    # re: 在spring mvc下發布jbpm流程[未登錄]  回復  更多評論   

    2012-08-22 14:02 by paul
    能給我發一套源碼嗎?謝謝liufeng_4466@sina.com

    # re: 在spring mvc下發布jbpm流程  回復  更多評論   

    2013-04-09 10:58 by lyl
    求一套源碼 謝謝 l_y_l@126.com

    # re: 在spring mvc下發布jbpm流程  回復  更多評論   

    2013-05-06 20:05 by 郭貝
    東西不錯 求源碼啊!下載不了 hanyijun85@163.com
    主站蜘蛛池模板: 亚洲性猛交xx乱| 亚洲女久久久噜噜噜熟女| 日韩色日韩视频亚洲网站| 亚洲一级Av无码毛片久久精品| 免费人成激情视频在线观看冫| 亚洲视频网站在线观看| 成人无遮挡毛片免费看| 国产精品福利在线观看免费不卡| 久久亚洲精品无码VA大香大香| 午夜时刻免费入口| 爽爽爽爽爽爽爽成人免费观看| 亚洲免费网站在线观看| 综合久久久久久中文字幕亚洲国产国产综合一区首| 国产免费拔擦拔擦8X高清在线人| 中文字幕在线日亚洲9| 亚洲大尺度无码无码专区| 午夜神器成在线人成在线人免费| 免费观看在线禁片| 亚洲av无码成人影院一区| 亚洲男人都懂得羞羞网站| 免费人成在线观看网站视频| 51视频精品全部免费最新| 亚洲AV无码之国产精品| 亚洲精品高清无码视频| 成人免费无码大片a毛片| 久久精品视频免费| 免费无码国产在线观国内自拍中文字幕 | 亚洲AV无码精品色午夜果冻不卡 | 亚洲综合激情视频| 亚洲无码视频在线| 午夜时刻免费入口| 久热中文字幕在线精品免费| 久久国产精品免费| 国产亚洲美女精品久久| 久久精品国产亚洲AV蜜臀色欲 | xvideos永久免费入口| 国产亚洲精品bv在线观看| 亚洲级αV无码毛片久久精品| 国产片免费在线观看| 永久免费AV无码国产网站| 久久这里只精品99re免费|