子在川上曰

            逝者如斯夫不舍晝夜
          隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
          數據加載中……

          jBPM開發入門指南(1)

          工作流雖然還在不成熟的發展階段,甚至還沒有一個公認的規范標準。但其應用卻已經在快速展開,這說明市場對工作流框架的需求是急迫而巨大的。

          我們公司的后臺短信管理系統涉及短信編發、領導層層審核等操作,這是一個比較典型的工作流系統。過去我們用的工作流引擎是 shark ,然后在使用后發現其過于龐大,后臺數據庫操作頻繁而未進行優化,直接導致的后果就是前臺操作緩慢。于是經研究決定,將工作流引擎由 shark 換成 jBPM

          jBPM 之前是一個開源軟件,后加入 JBoss 組織。正好我們公司也是用 JBoss 的。不過 jBPM 并沒有綁定在 JBOSS 上, Tomcat 等也可以使用它。

          jBPM 的正處在不斷發展中,做為開源軟件的特點,其設計變化往往很大。所以一些過去的資料可能已經不適用了。于是作者根據自己的使用經驗,重新整理出這份文檔,以備學習參考。

          注:本文使用的 jBPM 版本為 3.1.1

          環境準備

          1、安裝JDK

          所有 JAVA 開發第一個需要安裝的,沒什么好說的。記得把系統變量 JAVA_HOME 設上。

          2、安裝Ant

          Ant 是使用 jBPM 必須的一個工具。 jBPM 中的很多操作都要用到 Ant 。

          安裝方法:

          1 )先下載: http://archive.apache.org/dist/ant/binaries/ ,選一個如: apache-ant-1.6.5-bin.zip

          2 )解壓到 D:\ant (當然其他目錄也可以)。

          3 )設置如下系統變量: ANT_HOME=d:\ant 。

          4 )把 %ANT_HOME%\bin 加入到系統變量 PATH 中。

          3、安裝Eclipse

          Eclipse 不是開發 jBPM 必須的工具,但它是對 jBPM 開發很有幫助的工具,特別是 jBPM 提供了一個 Eclipse 插件用來輔助開發 jBPM 。關于 Eclipse 的安裝不贅述了,本文用的版本是: Eclipse3.2

          ?

          安裝 jBPM

          jBPM 的下載地址: http://www.jboss.com/products/jbpm/downloads  

          l?????????? JBoss jBPM jBPM 的軟件包

          l?????????? JBoss jBPM Starters Kit  是一個綜合包,它包括了 jBPM 軟件包、開發插件、一個配置好了的基于 JBoss jBPM 示例、一些數據庫配置文件示例。

          l?????????? JBoss jBPM Process Designer Plugin  是輔助開發 jBPM Eclipse 插件。

          l?????????? JBoss jBPM BPEL Extension jBPM 關于 BPEL 的擴展包

          本指南選擇下載: JBoss jBPM Starters Kit 。下載后解壓到 D:\jbpm-starters-kit-3.1 ,目錄下含有五個子目錄:

          l?????????? jbpm   jBPM 的軟件包

          l?????????? jbpm-bpel 只含有一個網頁

          l?????????? jbpm-db 各種數據庫 hibernate 配置文件示例,有些還包含了相應的 jdbc 驅動程序。

          l?????????? jbpm-designer  輔助開發 jBPM Eclipse 插件,具體在 jbpm-gpd-feature 子目錄中

          l?????????? jbpm-server  一個已經配置好了的基于 JBoss jBPM 示例 .

          ?

          感覺下工作流

          前面我們說了,在 JBoss jBPM Starters Kit jbpm-server 目錄是一個已經配置好的了 jBPM 示例,那么讓我們來感覺一下 jBPM 做出的東西吧。

          ?

          雙擊 jbpm-server 目錄下的 start.bat 文件,啟動 JBoss 服務。這時會打開一個 DOS 窗口,啟動完成后,日志會不斷輸出,其中最后一句是“ 13:55:39,937 DEBUG [StaticNotifier] going to wait for (CMD_EXECUTOR, java.lang.Object@1df59bd) ”,這表示 jBPM 在開始工作了,它不斷進行輪詢。

          打開網頁: http://localhost:8080/jbpm/  得到如下畫面

          ?20060713_image001.jpg

          這是一個已經用 jBPM 開發好的用戶定單流程,具有下單、審核、估價等流程。它所用的數據庫是一個內置的數據庫。

          cookie monster 用戶登錄,選擇“ create new web sale order ”可以創建一個定單。如下圖所示,在圖左邊是填寫的定單情況,右邊一整個定貨流程的示意圖,紅色框表示流程進行到哪一步了。填寫好定單好,選擇“ Save and Close Task ”,完成定單提交。

          ?20060713_image002.jpg

          選擇右上角的“ Login as another user ”以另外一個用戶名 ernie 登錄。這時可以看到 ernie 用戶的任務列表中多了一項。

          ?20060713_image003.jpg

          點進去后,顯示如下畫面。這個示例對中文的支持不好,全都顯示成了 unicode 碼了。不管這什么多,反正知道是這么回事就行了。在 comment 項填寫意見,選 OK 按鈕,進入到下一步。如果選擇 more info needed 按鈕,則打回給 cookie monster 用戶修改定單。

          ?20060713_image004.jpg

          下面的流程,這里就不再贅述了。在這個很標準的工作流示例中,我們基本可以看到 jBPM 的應用范圍還是比較廣的。而且從這個示例,我們是看不出有 jBPM 的,也就是說 jBPM 在后臺起著作用。

          從這個例子,還看不出 jBPM 的優勢。不過,如果在一個流程不確定,經常需要變動的項目中, jBPM 的好處將會顯然出來。應用 jBPM 后,改變流程只需改變流程描述文件,這將在后面的內容提到。

          這是一個已做好的示例,接下來我們將仿造這個實例來開發一個請假流程。

          作者簡介
          陳剛,廣西桂林人,著作有《Eclipse從入門到精通》
          您可以通過其博客了解更多信息和文章:http://www.chenGang.com.cn

          posted on 2006-07-13 15:03 陳剛 閱讀(76398) 評論(36)  編輯  收藏 所屬分類: jBPM

          評論

          # re: jBPM開發入門指南(1)  回復  更多評論   

          期待“jBPM開發入門指南(2) ”
          2006-07-20 11:40 | 黃又木

          # re: jBPM開發入門指南(1)  回復  更多評論   

          急切盼望jBPM開發入門指南(2) 的問世!?。。。。。?!
          2006-07-23 18:16 | zzf

          # re: jBPM開發入門指南(1)  回復  更多評論   

          waiting!!!
          2006-08-09 11:51 | zyb

          # re: jBPM開發入門指南(1)  回復  更多評論   

          跪求~~~
          2006-08-14 14:00 | zmm

          # re: jBPM開發入門指南(1)  回復  更多評論   

          這個例子其實并不好:
          1.看不到web應用開發的過程
          2.與jboss結合太緊
          3.不支持中文的流程定義

          本人在苦苦摸索,歡迎jbpm牛人與我交流討論,歡迎之至,QQ:57875031
          2006-08-18 11:32 | zhang

          # re: jBPM開發入門指南(1)  回復  更多評論   

          謝謝,
          2006-08-20 15:43 | 謝謝

          # re: jBPM開發入門指南(1)  回復  更多評論   

          請教一下,怎樣在eclipse下按裝JBPM插件
          2006-08-20 15:45 | 謝謝

          # re: jBPM開發入門指南(1)  回復  更多評論   

          對Jbpm數據庫應用的簡單分析和在Mysql上實現的demo
          http://blog.csdn.net/dust_bug/archive/2006/10/17/1338417.aspx

          歡迎學習jbpm的朋友有空來看看
          http://blog.csdn.net/dust_bug
          2006-10-23 16:10 | dust

          # re: jBPM開發入門指南(1)  回復  更多評論   

          你好! 我想請問一下, jbpm 3.1.2是必需要jdk1.5支持嗎? 因為我在身成數據庫腳本的時候,用jdk1.4.2報如下錯誤:
          compile.jbpm.test:
          [javac] Compiling 66 source files to C:\Amdocs\Devtools\jbpm-starters-kit-3.
          1.2\jbpm-starters-kit-3.1.2\jbpm.3\build\classes.jbpm.test
          [javac] C:\Amdocs\Devtools\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\j
          bpm.3\src\java.jbpm.test\org\jbpm\msg\command\AsyncExecutionDbTest.java:142: can
          not resolve symbol
          [javac] symbol : method getStackTrace ()
          [javac] location: class org.jbpm.msg.command.CommandExecutorThread
          [javac] commandExecutor.getStackTrace();
          [javac] ^
          [javac] C:\Amdocs\Devtools\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\j
          bpm.3\src\java.jbpm.test\org\jbpm\msg\command\AsyncExecutionDbTest.java:143: can
          not resolve symbol
          [javac] symbol : method getState ()
          [javac] location: class org.jbpm.msg.command.CommandExecutorThread
          [javac] log.debug("command executor state: "+commandExecutor.getStat
          e());
          [javac] ^
          [javac] C:\Amdocs\Devtools\jbpm-starters-kit-3.1.2\jbpm-starters-kit-3.1.2\j
          bpm.3\src\java.jbpm.test\org\jbpm\msg\command\AsyncExecutionDbTest.java:145: can
          not resolve symbol
          [javac] symbol : method getStackTrace ()
          [javac] location: class org.jbpm.msg.command.CommandExecutorThread
          [javac] StackTraceElement[] commandExecutorStackTrace = commandExecu
          tor.getStackTrace();
          [javac]
          ^
          [javac] 3 errors

          如果選擇hibernate2.1, 我應該選擇那個版本的jbpm是比較穩定的。
          2006-12-13 11:57 | Derry Huang

          # re: jBPM開發入門指南(1)  回復  更多評論   

          哈哈,沒想到你們公司的情況居然和我們的如此相似。
          2007-01-03 19:09 | errorfun

          # re: jBPM開發入門指南(1)  回復  更多評論   

          請問,我安裝了myeclipse后,怎樣才能發布jbpm工程呢?
          2007-04-04 10:36 | JF

          # re: jBPM開發入門指南(1)[未登錄]  回復  更多評論   

          JBPM插件于myeclipse有沖突,你可以把已經打包的流程使用JBOSS IDE來發布
          2007-06-20 09:17 | 李若紫

          # re: jBPM開發入門指南(1)  回復  更多評論   

          謝謝!
          我在我的博客中引用你的文章,我會注名出處.希望您同意!
          2007-06-20 23:43 | deen

          # re: jBPM開發入門指南(1)  回復  更多評論   

          thanx!!
          2007-06-26 10:40 | soso

          # re: jBPM開發入門指南(1)  回復  更多評論   

          http://www.jboss.com/products/jbpm/downloads 這個網址下面沒有JBoss jBPM Starters Kit 包啊,我需要下載那個zip文件,下了一個jbpm-jpdl-3.2.1.zip,用不了啊
          2007-07-06 15:50 | 小云

          # jBPM開發入門指南(1)  回復  更多評論   

          JBoss jBPM Starters Kit 提示的網站上沒有 怎么辦 上哪里能找到呢
          2007-07-17 10:52 | 劉俊

          # re: jBPM開發入門指南(1)  回復  更多評論   

          您好:
          我照著您的jbpm開發入門指南文章做成功了?,F在我想把jbpm和facelet結合起來,用facelet做前臺。facelet 我也用過。但是我還不清楚如果兩者結合起來具體該怎么做。希望您能做一個這樣的例子。謝謝!
          我的msn是qq545330097@hotmail.com
          2007-08-17 11:12 | zhangluping

          # re: jBPM開發入門指南(1)  回復  更多評論   

          恩.不錯.看了兩天的jbpm
          在你這里算是有點思路了..
          非常的感謝
          2007-11-04 00:37 | hellcomte

          # re: jBPM開發入門指南(1)  回復  更多評論   

          這是什么意思啊.workspace\jbpm.3\build.deploy.xml:50: org.hibernate.exception.JDBCConnectionException: Cannot open connection
          2007-11-21 11:29 | 劉德軍

          # re: jBPM開發入門指南(1)  回復  更多評論   

          剛接觸JBPM我按照你的步驟走了一次,結果顯示網頁無法顯示,請問啟動了start.bat 還需要啟動JBOSS嗎?
          2007-11-29 00:34 | zjb

          # re: jBPM開發入門指南(1)[未登錄]  回復  更多評論   

          到www.jbpm.org就可以看到jBPM Starters Kit 3.1.zip了 。因為jbpm被jboss收購了 ,在原始網站上有到jboss的鏡像。
          2007-11-29 11:12 | jinni

          # re: jBPM開發入門指南(1)  回復  更多評論   

          @jinni

          謝謝指點。
          2007-12-12 10:59 | fige

          # re: jBPM開發入門指南(1)[未登錄]  回復  更多評論   

          謝謝指點。
          如果可以有一個Web網站的和Jbpm整合的例子就更好了。
          是否可以給我一份呢!
          E-Mail:swg_1982@163.com
          2008-01-29 13:51 | Wind

          # re: jBPM開發入門指南(1)  回復  更多評論   

          jbpm群31994512,歡迎大家討論。謝謝。
          2008-06-24 15:19 | jBPMer

          # re: jBPM開發入門指南(1)  回復  更多評論   

          謝謝你的文章,我想問一下,jbpm怎么在tomcat中使用?。?!
          2008-09-22 10:08 | javamark

          # re: jBPM開發入門指南(1)  回復  更多評論   

          http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/j/jb/jbpm/jbpm-starters-kit-3.1.4.zip

          http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/j/jb/jbpm/jbpm-starters-kit-3.1.3.zip
          2008-12-01 18:41 | hoho

          # re: jBPM開發入門指南(1)  回復  更多評論   

          jbpm與ssh集成方法
          http://blog.csdn.net/shazhenzhong/archive/2008/06/19/2564584.aspx
          web下開發完整示例,包括顯示流程節點圖片
          http://blog.csdn.net/shazhenzhong/archive/2009/01/10/3744746.aspx
          2009-01-15 10:54 | shazhenzhong

          # re: jBPM開發入門指南(1)  回復  更多評論   

          你好 ,能不能給我一份JBPM和WEB的實例,謝謝.
          starbust@163.com
          2009-03-16 10:22 | starbust

          # re: jBPM開發入門指南(1)  回復  更多評論   

          能不能給我一份JBPM和WEB的實例,謝謝.
          fxezfbj@163.com
          2009-03-18 20:05 | fbj

          # re: jBPM開發入門指南(1)  回復  更多評論   

          歡迎從事JBPM研究學習人事加入JBPM群83546292,共同學習交流JBPM。
          2009-03-27 16:42 | fengyu

          # re: jBPM開發入門指南(1)  回復  更多評論   

          歡迎從事JBPM研究學習人士,加入JBPM群 83546292,共同學習交流JBPM。
          2009-03-27 16:43 | fengyu

          # re: jBPM開發入門指南(1)  回復  更多評論   

          22:27:53,906 [main] INFO JbpmConfiguration : using jbpm configuration resource 'jbpm.cfg.xml'
          22:27:53,921 [main] DEBUG JbpmConfiguration : loading defaults in jbpm configuration
          22:27:54,187 [main] DEBUG ObjectFactoryImpl : adding object info 'default.jbpm.context'
          22:27:54,187 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.hibernate.cfg.xml'
          22:27:54,187 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.business.calendar'
          22:27:54,187 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.default.modules'
          22:27:54,187 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.converter'
          22:27:54,187 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.action.types'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.node.types'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.parsers'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.varmapping'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.msg.wait.timout'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.byte.block.size'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'mail.smtp.host'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.task.instance.factory'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.variable.resolver'
          22:27:54,203 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.mail.address.resolver'
          22:27:54,203 [main] DEBUG JbpmConfiguration : loading specific configuration...
          22:27:54,468 [main] DEBUG JpdlParser$JpdlEntityResolver : resolving schema reference publicId(null) systemId(http://jbpm.org/jpdl-3.1.xsd)
          22:27:54,468 [main] DEBUG JpdlParser$JpdlEntityResolver : providing input source to local 'jpdl-3.1.xsd' resource
          22:27:54,640 [main] DEBUG NodeTypes : node 'page' will not be available. class 'org.jboss.seam.pageflow.Page' couldn't be loaded
          22:27:54,640 [main] DEBUG NodeTypes : node 'start-page' will not be available. class 'org.jboss.seam.pageflow.Page' couldn't be loaded
          22:27:54,656 [main] WARN JpdlXmlReader : process xml warning: warning: no swimlane or assignment specified for task '<task xmlns="urn:jbpm.org:jpdl-3.1" blocking="false" signalling="true" priority="normal">

          <controller config-type="field">

          <variable name="name" access="read,write"/>

          <variable name="day" access="read,write"/>

          <variable name="note" access="read,write"/>

          </controller>

          </task>'
          22:27:54,687 [main] DEBUG GraphElement : event 'process-start' on 'ProcessDefinition(helloworld)' for 'Token(/)'
          有無人解答我這個錯誤啊....急
          2009-05-17 23:12 | hill124

          # re: jBPM開發入門指南(1)  回復  更多評論   

          弄的不清楚!?。。。。。。。。。。。。。。?!
          2009-07-10 11:36 | 時光

          # re: jBPM開發入門指南(1)  回復  更多評論   

          按這個例子做,輸入http://localhost:8080/jbpm,出現404錯誤
          2009-09-10 09:56 | 鐘城

          # re: jBPM開發入門指南(1)[未登錄]  回復  更多評論   

          jbpm-server 目錄下的 start.bat不能啟動,是什么問題??
          2014-04-18 17:20 | 陳勇

          # re: jBPM開發入門指南(1)  回復  更多評論   

          @鐘城
          @陳勇
          你們找到原因了么?我現在按照他的博客步奏做,也是一運行start.bat就閃退,根本沒辦法啟動服務。
          2015-05-26 15:52 | 實習
          主站蜘蛛池模板: 石城县| 兰坪| 冕宁县| 交城县| 庆元县| 武城县| 洞头县| 罗江县| 海原县| 微山县| 金堂县| 中阳县| 横峰县| 罗定市| 金阳县| 成安县| 通榆县| 卫辉市| 东山县| 新干县| 十堰市| 厦门市| 隆化县| 沙河市| 从江县| 桂林市| 依安县| 亚东县| 上杭县| 历史| 东兰县| 西丰县| 视频| 谷城县| 称多县| 祁阳县| 哈巴河县| 洪江市| 错那县| 岫岩| 永定县|