最近正在研究工作流的整体流程,为了下次解决方便特作如下记录。如果有浏览的哥们,希望您在发表的时候声明一下转载。这里谢谢了。呵呵!
首先,上网下载下所有的资料。
1. JBPM文件所用版本 jbpm-starters-kit-3.1.2.zip
2. ant 所用版本 apache-ant-1.7.1-bin.tar.gz
接下来,要配置好环境
1. ant 的环境 ANT_HOME 设置为 D:/ant ,(这个目录是你的ant的解压目录,我的存在了D盘下)path 中新增 %ANT_HOME%/bin;%ANT_HOME%/lib; 。然后把 下载的jbpm-starters-kit-3.1.2.zip文件解压 我解压到 D:/JBPM 文件夹内大致的目录结构如下
2. JBPM数据库的安装
我们以MSSQL2005为例和大家一起来看一下如何完成JBPM数据库的安装(其它数据库大家可以照葫芦画瓢完成)。
a) 在MSSQL里新建一数据库,名为jbpmtest(这里是我所用的数据库名,大家可以根据喜好,自己随意命名)。
b) 找到我们开始部分下载的jbpm-starters-kit-3.1.2文件夹,找到其中的jbpm文件夹。
c) 将MSSQL的JDBC驱动copy到jbpm文件夹的lib目录下(我这里采用的是sourceforge的jtds驱动)
d) 在jbpm文件夹里在其中的src/resources下新建一文件夹名为mssql,将src/resources/hssqldb文件夹下的create.db.hibernate.properties和identity.db.xml文件copy到mssql目录下。
e) 修改create.db.hibernate.properties文件(这个文件里配置的是目标数据库的JBPM 工作流开发指南
连接属性信息),修改内容如下:
# these properties are used by the build script to create
# a hypersonic database in the build/db directory that contains
# the jbpm tables and a process deployed in there org.hibernate.dialect.HSQLDialect
hibernate.dialect=org.hibernate.dialect.SybaseDialect
hibernate.connection.driver_class=net.sourceforge.jtds.jdbc.Driver
hibernate.connection.url=jdbc:jtds:sqlserver://192.168.1.66:1433/OfficeOA
hibernate.connection.username=sa
hibernate.connection.password=mfw238
hibernate.show_sql=true
f) 在jbpm文件夹下,找到src/config.files/hibernate.cfg.xml.(此文件主要是系统运行时数据库连接属性配置),需要修改的内容如下:
<!-- jdbc connection properties -->
<!-- jdbc connection properties -->
<property name="hibernate.dialect">org.hibernate.dialect.SybaseDialect</property>
<property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:jtds:sqlserver://192.168.1.66:1433/OfficeOA</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">mfw238</property>
在Jbpm根目录下,打开build.deploy.xml文件,找到其中的create.db并做如下
修改,create.db节点修改好的内容如下:
<!-- ============== -->
<!-- === SERVER === -->
<!-- ============== -->
<target name="create.db" depends="declare.jbpm.tasks, db.clean, db.start" description="creates a hypersonic database with the jbpm tables and loads the processes in there">
<jbpmschema actions="create"
cfg="${basedir}/src/config.files/hibernate.cfg.xml"
properties="${basedir}/src/resources/mssql/create.db.hibernate.properties"/>
<loadidentities file="${basedir}/src/resources/mssql/identity.db.xml"
cfg="${basedir}/src/config.files/hibernate.cfg.xml"
properties="${basedir}/src/resources/mssql/create.db.hibernate.properties"/>
<ant antfile="build.xml" target="build.processes" inheritall="false" />
<deployprocess cfg="${basedir}/src/config.files/hibernate.cfg.xml"
properties="${basedir}/src/resources/mssql/create.db.hibernate.properties">
<fileset dir="build" includes="*.process" />
</deployprocess>
<antcall target="db.stop" />
<!-- <antcall target="db.stop" /> 这里很多人的配置不一样,一般要去掉。
我在配置的过程中就去掉了看了看下面的定义
好像是属于确定要停止服务的那种意思
-->
</target>
h) 配置好ant工具,将ant/bin目录加上系统的path环境变量。
i) 在命令行模式下进入jbpm目录,输入ant create.db -buildfile build.deploy.xml ,构建JBPM所需要的table。这里大家可以观察屏幕输出,如果没有意外那就表明建表成功了!
j) 打开MSSQL的企业管理器,我们可以看到一系列以“JBPM_”开头的table了,如下图:
总体是33个表。如果看到这样的情况,那就要恭喜你了呵呵。初步搞定!
3. 搭建JBPM的WEB应用
在JBPM的发布包中,已经为我们准备了一个JSF架构的WEB应用,我们可以在这个应用基础之上来搭建我们的发布工具。
a) 在命令行模式下,进入jbpm目录,运行ant命令编译打包JBPM工程。打包完成后进行D:/JBMP/jbpm/src/resources目录,找到jbpm.war文件夹,将其copy到tomcat 5.5.15的webapps目录下(由于我们前面在做JBPM建表工作的时候已经配置好JBPM的数据库连接信息,所以jbpm.war的web应用里我们就不用再操心数据库的连接问题了)。
b) 将webapps下的jbpm.war改名为jbpm(目的是为了简单)
c) 打开jbpm目录,我们知道Hibernate运行时需要一些第三方jar包支持,但我们的jbpm目录里只有hibernate自己的jar包,如果这样运行tomcat5.5.15我们可以很明显地看到jbpm应用发布失败,如何解决这个问题呢,方法很简单。我们下载一个hibernate3的工程文件,将其中必须的第三方jar文件copy到我们的jbpm工程里就OK了,下图是我copy完成后的jbpm/WEB-INF/ lib目录下的jar包列表,供参考:(或者可以退回到D:/JBMP/jbpm/src下搜索所有的jar文件复制到jbpm/WEB-INF/ lib目录下)
运行tomcat5.5.15
打开IE,在地址栏里输入:http://localhost:8080/jbpm,这时如果我们操作正确的话,应该可以看到如下信息了: