Posted on 2009-12-04 00:08
penngo 閱讀(3114)
評論(3) 編輯 收藏 所屬分類:
JBPM
上一篇:
JBPM4.2安裝
繼續(xù)完成上一篇的安裝.
4.在eclipse上安裝流程設(shè)計(jì)器(GPD),有兩個安裝方法。
4.1.使用Eclipse軟件升級(Software Update)機(jī)制安裝設(shè)計(jì)器
在gpd目錄下有一個gpd/jbpm-gpd-site.zip文件, 這就是更新站點(diǎn)(archived update site)的 壓縮包。
在Eclipse里添加更新站點(diǎn)的方法:
幫助 --> 安裝新軟件...
點(diǎn)擊 添加...
在 添加站點(diǎn) 對話框中,單擊 壓縮包...
找到 gpd/jbpm-gpd-site.zip 并點(diǎn)擊 '打開'
點(diǎn)擊 確定 在 添加站點(diǎn) 對話框中,會返回到 '安裝'對話框
選擇出現(xiàn)的 jPDL 4 GPD 更新站點(diǎn)
點(diǎn)擊 下一步.. 然后點(diǎn)擊 完成
接受協(xié)議
當(dāng)它詢問的時候重啟eclipse
重新啟動Eclipse,直接按Ctrl+N或File→New→other,你可以在對話框中看到有JBoss jBPM下有jBPM 4 Process Definition選項(xiàng)
4.2.自己去官網(wǎng)下載設(shè)計(jì)器
地址:http://sourceforge.net/projects/jbpm/files/在里面選擇jBPM Process Designer的最新版本下載(不同的jpd版本要與相應(yīng)的Eclipse版本對應(yīng),不然會出現(xiàn)一些小問題)。
下載回來后,解壓出來后把里面features,plugins里的包放進(jìn)Eclipse相應(yīng)文件夾features,plugins里面。
重新啟動Eclipse,直接按Ctrl+N或File→New→other,你可以在對話框中看到有JBoss jBPM下有jBPM 4 Process Definition選項(xiàng)
不過截止今天2009年12月3日,用Eclipse Update得到的GPD版本為jpdl4_1.2.0,而網(wǎng)上下載的是jpdl4_0.0.0,GPD節(jié)點(diǎn)的屬性與用戶指南文檔的介紹也不一致。
5.定義jBPM用戶庫
5.1在工作空間定義一個用戶庫, 用來放置jBPM的庫文件。
點(diǎn)擊窗口 --> 屬性(Windows --> Preferences)
選擇Java --> 創(chuàng)建路徑 --> 用戶類庫(Java --> Build Path --> User Libraries)
點(diǎn)擊新建(New)
類型名字jBPM Libraries
點(diǎn)擊添加JARs(Add JARs...)
找到j(luò)BPM安裝程序下的lib目錄
選擇lib下的所有jar文件并點(diǎn)擊打開(Open)
選擇jBPM Libraries作為入口
重新點(diǎn)擊添加JARs(Add JARs)
在jBPM的安裝程序的根目錄下選擇jbpm.jar文件
點(diǎn)擊打開(Open)
在jbpm.jar下選擇源碼附件(Source attachment)作為入口
點(diǎn)擊編輯(Edit)
在源碼附件的配置(Source Attachment Configuration)對話框中,點(diǎn)擊目錄(External Folder...)
到j(luò)BPM安裝程序下的src目錄
點(diǎn)擊選擇(Choose)
點(diǎn)擊兩次'確定'(Ok)會關(guān)閉所有對話框
6.測試
6.1.現(xiàn)在開始新建一個例子測試下。
新建一個java project,名test。
右擊test項(xiàng)目工程,選擇Properties→Java Build Path→Libraries→Add Library→User Lirary→jBPM Libraries(引入用戶庫5.1建立的用戶庫jBPM Libraries)
如果沒有執(zhí)行5.1步驟,在Java Build Path→Libraries中選擇Add External JARs把JBPM4.2/lib的包和JBPM4.2目錄下的JBPM.jar加入到庫中。
新建流程定義文新建src/jbpm/Order.jpdl.xml,這個文件的內(nèi)容來自jbpm4.2jbpm-4.2\examples\src\org\jbpm\examples\services目錄下
<?xml version="1.0" encoding="UTF-8"?>
<process name="Order" xmlns="http://jbpm.org/4.2/jpdl">
<start g="16,19,48,48">
<transition to="receive confirmation" />
</start>
<state name="receive confirmation" g="96,16,136,52">
<transition to="end" />
</state>
<end name="end" g="269,20,48,48"/>
</process>

新建類src/jbpm/JbpmTest.java
package jbpm;

import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.ManagementService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;


public class JbpmTest
{


public static void main(String[] args)
{
Configuration configuration = new Configuration();
ProcessEngine processEngine = configuration.buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
String deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("jbpm/Order.jpdl.xml")
.deploy();
}
}


從jbpm-4.2\src目錄下找到j(luò)bpm.cfg.xml,jbpm.hibernate.cfg.xml,jbpm.mail.properties,jbpm.mail.templates.examples.xml復(fù)制到test/src目錄下,
修改jbpm.hibernate.cfg.xml文件中的數(shù)據(jù)庫連接(使用Mysql)。
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpmdb</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
運(yùn)行JbpmTest代碼。
如果出現(xiàn)[JDBCExceptionReporter] Cannot delete or update a parent row: a foreign key constraint fails (`jbpm`.`jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`))
錯誤,把hibernate.dialect改為<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
運(yùn)行成功后,按啟動上一篇JBPM4.2安裝的tomcat,訪問http://localhost:8080/jbpm-console,登錄JBPM控制臺,可以看到剛才發(fā)布的流程

在數(shù)據(jù)庫中也可看到j(luò)bpm4_deployment,jbpm4_deployprop,jbpm4_lob多了數(shù)據(jù).
如果訪問http://localhost:8080/jbpm-console時出現(xiàn)登錄失敗,需要在發(fā)布后重新加載用戶信息,進(jìn)入jbpm-4.2\install,運(yùn)行ant load.example.identities命令。出現(xiàn)這個問題的原因是因?yàn)樵趈bpm.hibernate.cfg.xml這個文件中配置問題,可以把 <mapping resource="jbpm.identity.hbm.xml" /> 這一句刪除或注釋掉,就不會出現(xiàn)發(fā)布時清空用戶的問題。
測試代碼:jbpmTest.rar