開始學習jbpm

來源:互聯網
上載者:User

 

  因為工作的關係,需要使用jbpm,可自己以前根本就沒有接觸過,算是從零開始吧。以後會記下的學習中的點滴,我使用的教程是《jBPM jPDL 使用者開發手冊 3.2.3 》的中譯版,說實話,有的地方譯的的確不怎麼樣,但總比自己慢慢看英文要快,現在講的是效率,而且作者算是個有心的人。

 

  下載:(jbpm sourceforge 檔案清單)

  jbpm-jpdl-suite-3.2.3.zip 

  沒有什麼特殊原因,教程中用的就是這個版本,配套嘛。

  eclipse-jee-europa-winter-win32.zip

  要使用jbpm 3.2.3的設計器外掛程式,需要eclipse 3.3版本的支援,只能暫時擱置eclipse 3.5了。

 

  安裝:

  當然,使用jbpm的前提是你已經安裝並配置了jdk,這個不必多談吧,

  1. 解壓jbpm-jpdl-stuite-3.2.3.zip。
  2. 解壓eclipse-jee-europa-winter-win32.zip
  3. 安裝圖形設計器外掛程式。將解壓後的designer目錄下的eclipse檔案夾中的內容複寫到eclipse 3.3的根目錄下,重啟eclipse,即可完成外掛程式的安裝。外掛程式安裝後,可以在建立對話方塊中找到jbpm的相關項目。  在Eclipse的“window > Preferences”中展開“JBoss jBPM”分支,添加一個Runtime Location,路徑為jbpm-jpdl-stuite-3.2.3解壓後的路徑。  可以在Server Deployment分支中看到jbpm的布署配置

      將jbpm-jpdl-stuite-3.2.3.zip解壓後的designer目錄下的eclipse檔案夾中的內容複寫到eclipse 3.3的根目錄下,重啟eclipse,即可完成外掛程式的安裝。外掛程式安裝後,可以在建立對話方塊中找到jbpm的相關項目。

  4. 配置jBPM外掛程式運行環境。
      在Eclipse的“window > Preferences”中展開“JBoss jBPM”分支,添加一個Runtime Location,路徑為jbpm-jpdl-stuite-3.2.3解壓後的路徑。可以在Server Deployment分支中看到jbpm的布署配置 。

 

  Hello,World:

  以教程中的Hello,World為例,流程如下。

 

  

 

  在eclipse中建立一個“Process Project”項目,然後建立一個HelloWorld類。

package org.zym.helloworld;<br />import org.jbpm.graph.def.ProcessDefinition;<br />import org.jbpm.graph.exe.ProcessInstance;<br />import org.jbpm.graph.exe.Token;<br />import junit.framework.TestCase;<br />public class HelloWorld extends TestCase {<br /> public void testHelloWorldProcess() {<br /> // 這個方法顯示一個流程定義和一個流程定義的執行。<br /> // 流程定義有三個節點:<br /> // 未命名的start-state, state's'和命名為'end'的end-state節點<br /> // 下一行解析xml文本到ProcessDefinition類<br /> // ProcessDefinition是作為java對象的流程的正規描述。<br /> String xml = "<process-definition>" + "<start-state>"<br /> + "<transition to='s'/>" + "</start-state>"<br /> + "<state name='s'>" + "<transition to='end'/>" + "</state>"<br /> + "<end-state name='end'/>" + "</process-definition>";<br /> ProcessDefinition processDefinition = ProcessDefinition<br /> .parseXmlString(xml);<br /> // 下一行建立一個流程定義的執行,在建立後,流程執行有一個執行的主路徑<br /> // (=root token),定位在start-state節點位置。<br /> ProcessInstance processInstance = new ProcessInstance(processDefinition);<br /> // 建立流程執行的主路徑(=root token)<br /> Token token = processInstance.getRootToken();<br /> // 在建立流程定義後,確定主路徑牌開始狀態節點處<br /> assertSame(processDefinition.getStartState(), token.getNode());<br /> // 讓我們開始流程執行,通過它的預設流程轉換離開開始節點<br /> token.signal();<br /> // signal方法將阻止直到流程執行進入一個等待狀態<br /> // 所以執行的主路徑現在定位在狀態's'<br /> assertSame(processDefinition.getNode("s"), token.getNode());<br /> // 讓我們發送一個訊號。假設執行離開狀態's'通過預設的流程轉換<br /> token.signal();<br /> // 現在資訊方法返回,因為這個流程執行個體已經到達結束節點(end-state)<br /> assertSame(processDefinition.getNode("end"), token.getNode());<br /> }<br />} 

使用JUnit運行這個hello,world即可。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.