jbpm4.4學習總結(二)部署流程到Mysql數據庫

     流程設計好了以後,我們要持久化到數據庫中,我們用的是Mysql,jbpm3.2版本數據庫文件是有問題的,不過jbpm4.4修復了這個問題。

一、準備數據庫

  • 1.1首先安裝ant   >>>>  baidu  or google
  • 1.2修改jbpm4.4的mysql.properties,主要是創建數據庫的時候能對應你在mysql裏面建立的schema,因爲jbpm默認是用hibernate實現數據庫的持久化 >>>>>D:\jbpm-4.4\install\jdbc
  • 1.3    cmd到>>>>>D:\jbpm-4.4\install 運行ant -Ddatabase=mysql create.jbpm.schema
    當看到 Successful字樣的時候,去數據庫檢查一下看看錶是否都建好了

二、創建Project

  • 2.1首先要創建一個Dynamic Web Project項目,並將jbpm配置文件放在指定位置,最後引入D:\jbpm-4.4\lib 下的jar
  • 我的jbpm.hibernate.cfg.xml
    1. <?xml version="1.0" encoding="utf-8"?> 
    2.  
    3. <!DOCTYPE hibernate-configuration PUBLIC  
    4.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
    5.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
    6. <hibernate-configuration> 
    7.   <session-factory> 
    8.      <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 
    9.      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    10.      <property name="hibernate.connection.url">jdbc:mysql://192.168.0.100:3307/mtf_jbpm</property> 
    11.      <property name="hibernate.connection.username">MTF</property> 
    12.      <property name="hibernate.connection.password">a123b456</property> 
    13.      <property name="hibernate.hbm2ddl.auto">update</property>  
    14.  
    15.     <!--  <property name="show_sql">false</property> 
    16.     <property name="hibernate.format_sql">true</property> --> 
    17.  
    18.      <mapping resource="jbpm.repository.hbm.xml" /> 
    19.      <mapping resource="jbpm.execution.hbm.xml" /> 
    20.      <mapping resource="jbpm.history.hbm.xml" /> 
    21.      <mapping resource="jbpm.task.hbm.xml" /> 
    22.      <mapping resource="jbpm.identity.hbm.xml" />   
    23.  
    24.   </session-factory> 
    25. </hibernate-configuration> 

    需要注意的是hibernate.hbm2ddl.auto create-drop是默認,有點遺忘……

  • 2.3引入jbpm的jar >>D:\jbpm-4.4\lib 下,注意包的衝突,不要引入重複的
  • 1.   ${JBPM_HOME}/jbpm.jar(核心包)

    2.   JBPM_HOME/lib/*.jar,不添加以下jar包:servlet-api.jar, junit.jar。其中junit.jar一定不要添加,因爲是3.8.2版本,與我們使用的junit4有衝突。

    3.   所使用的數據庫對應的驅動的jar包(第2步所添加的jar包中已包含mysqljdbc驅動jar包)。

三、部署流程到Mysql數據庫

  • 3.1需要寫一個Junit testCase
    1. public class LeaveDeploy {  
    2.     private String deploymentId;  
    3.     private ProcessEngine processEngine;  
    4.     private TaskService taskService;  
    5.     private RepositoryService repositoryService;  
    6.     private ExecutionService executionService;  
    7.     private HistoryService historyService;  
    8.     @Test 
    9.     public void testDeploy() {  
    10.         processEngine = new Configuration().getProcessEngine();  
    11.         repositoryService = processEngine.getRepositoryService();  
    12.         executionService = processEngine.getExecutionService();  
    13.         taskService = processEngine.getTaskService();  
    14.         historyService = processEngine.getHistoryService();  
    15.         deploymentId = processEngine.getRepositoryService().createDeployment()  
    16.                 .addResourceFromClasspath("com/mtf/jbpm/process/leaveProcess.jpdl.xml")  
    17.                 //指定jpdl.xml的路徑  
    18.             //  .addResourceFromClasspath("test/leaveProcess.png")  
    19.                 .deploy();  
    20.         System.out.println("發佈成功!");  
    21.         System.out.println(deploymentId);  
    22.     }         

    運行junit,成功後發現數據庫中有相應的記錄就成功啦,其間可能遇到運行成功但是數據庫沒有字段增加的情況,忘了怎麼解決了,我記的是粗心大意所致
     

四、總結

        這部分其實是很簡單的,我剛開始用jbpm4.4的時候就是持久化不了數據庫,記憶中好像是因爲哪個地方配置出錯了……還有就是我寫的項目其實很偷懶,jbpm實際上要求我們管理流程定義(增刪改查),部署流程實際上推薦我們打成zip包上傳到服務端然後在持久化到數據庫,但是我覺得這樣簡單嘛,能用就行啦……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章