1.软件清单 jdk1.6 jbpm4.2 tomcat6 oracle9i ant1.7 eclipse-jee-galileo-win32
2.配置JDK1.6 在系统路径上添加 JAVA_HOME=c:\java\jdk16(我的JDK1.6安装目录) CLASS_PATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;
3.配置ANT 在系统路径上添加 ANT_HOME=c:\java\ant path=%ANT_HOME%\bin
4.配置数据库(使用Oracle,默认使用的是hsqldb) (1)将class12.jar复制到jbpm-4.2\lib目录下,否则找不到驱动 (2)进入c:\jbpm-4.2\install\jdbc目录修改文件oracle.properties文件,设置你自己的oracle数据库名、用户名和密码 注意jbpm-4.2的根目录名称不能更改,否则无法运行ANT (3)修改c:\jbpm-4.2\install\build.xml,修改为<property name="database" value="oracle" /> <!-- {hsqldb | mysql | oracle | postgresql} --> (4)进入c:\jbpm-4.2\install, 运行 ant create.jbpm.schema,将创建数据库脚本并在指定数据库中创建表 4.配置Tomcat (1)复制apache-tomcat-6.0.20.zip文件到c:\jbpm-4.2\install\downloads目录中 (2)进入c:\jbpm-4.2\install,运行ant install.tomcat. 完成后,在c:\jbpm-4.2目录下生成一个tomcat目录
5.配置eclipse (1)复制eclipse-jee-galileo-win32.zip文件到c:\jbpm-4.2\install\downloads目录中。 注意:eclipse的名称必须是eclipse-jee-galileo-win32 (2)进入c:\jbpm-4.2\install,运行ant install.eclipse,运行时间较长 完成后,在c:\jbpm-4.2目录下生成一个eclipse目录 注意:如果没有不用ant配置eclipse,安装下面的GPD时,提示出错,点击确定后,GPD依然可以使用,不知道为什么。
6.配置流程设计器GPD 启动eclipse,在Eclipse里添加更新站点的方法: 帮助 --> 安装新软件... 点击 添加... 在 添加站点 对话框中,单击 压缩包... 找到 install/src/gpd/jbpm-gpd-site.zip 并点击 '打开' 点击 确定 在 添加站点 对话框中,会返回到 '安装'对话框 选择出现的 jPDL 4 GPD 更新站点,全部选中 点击 下一步.. 然后点击 完成 接受协议 当它询问的时候重启eclipse
7.配置elcipse工程 配置jBPM: 点击 Window --> Preferences 选择 JBoss jBPM --> jBPM-4.2 --> Runtime Locations 点击 Add... 在 Add Location 对话框中,输入一个名字,比如 jBPM-4.2 然后点击 Search... 在 Browse For Folder 对话框中,选择你的jbpm-4.2根目录,然后点击 OK 点击 OK 在 Add Location 对话框中
8.定义一个用户库用户库用来放置jBPM的库文件。 如果你创建一个新工程, 只需要将用户库全部添加到build path 点击窗口 --> 属性(Windows --> Preferences) 选择Java --> 创建路径 --> 用户类库(Java --> Build Path --> User Libraries) 点击新建(New) 类型名字jBPM Libraries 点击添加JARs(Add JARs...) 找到jBPM安装程序下的lib目录 选择lib下的所有jar文件并点击打开(Open) 选择jBPM Libraries作为入口 重新点击添加JARs(Add JARs) 在jBPM的安装程序的根目录下选择jbpm.jar文件 点击打开(Open) 在jbpm.jar下选择源码附件(Source attachment)作为入口 点击编辑(Edit) 在源码附件的配置(Source Attachment Configuration)对话框中,点击目录(External Folder...) 找到jBPM安装程序下的src目录 点击选择(Choose) 点击两次'确定'(Ok)会关闭所有对话框
9.创建一个jbpm demo创建一个例子,并将工作流程定义保存到数据库中(1)创建一个java Project,起名“ myjbpm ”,然后就可以单击“完成”了(2)将c:\jbpm-4.2\examples\src中的所有配置文件复制到myjbpm工程中的根目录下 jbpm.cfg.xml jbpm.hibernate.cfg.xml jbpm.mail.properties jbpm.mail.templates.examples.xml logging.properties
(3)修改jbpm.hibernate.cfg.xml hibernate.cfg.xml 的默认设置是用 HSQL ,这是一个内存数据库,这种内存数据库用来代替项目实际所用的数据库来做单元测试挺不错的。不过我们这里是要试试用 MySQL 、 Oracle 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/jbpm</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">123456</property>
Oracle 的更改如下: <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.123.10:1521:wxxrDB</property> <property name="hibernate.connection.username">xiong</property> <property name="hibernate.connection.password">xiong</property>
(4)定义流程 创建流程的定义文件是 pd.jpdl.xml,将下面代码复制到文件中------------------------------------------------------------------------------------------<?xml version="1.0" encoding="UTF-8"?>
<process name="pd" xmlns="http://jbpm.org/4.0/jpdl"> <start name="start1" g="207,62,48,48"> <transition name="to state1" to="state1" g="-59,-17"/> </start> <end name="end1" g="208,293,48,48"/> <state name="state1" g="185,155,92,52"> <transition name="to end1" to="end1" g="-47,-17"/> </state></process>------------------------------------------------------------------------------------------
(5)布置jbpm
import junit.framework.TestCase;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 ServicesTest extends TestCase { public void testObtainServicesAndDeployProcess() { 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("pd.jpdl.xml").deploy();
}}
无论是 MySQL 还是 Oracle , jbpm4_deployment表,你会发现多了一条记录 jbpm4_deployprop表会多了三条记录,对应id,key,version jbpm4_lob 表会多了一条记录,保存流程图