jbpm+tomcat+mysql配置指南

来源:互联网 发布:java文件大小转换 编辑:程序博客网 时间:2024/05/19 13:08
 

1        概述

本文主要讲解jbpm+tomcat+mysql配置过程,程序用例为jBPM自带例子websale。主要环境内容如下:

Ø        IDEEclipse3.2.1

Ø        JDKJ2SDK1.5.06

Ø        TomcatTomcat5.5.17

Ø        jBPMjbpm-starters-kit-3.1.2

Ø        DatabaseMySQL5.0.27

2        环境准备

2.1    安装JDK1.5.06

java.sun.com下载JDK1.5.06安装文件。

双击JDK1.5.06安装文件,安装JDK1.5.06。安装完成后,在系统环境变量中设置JAVA_HOME,并指向JDK1.5.06安装目录。后面称为JAVA_HOME

2.2    安装Eclipse3.2.1

www.eclipse.org下载Eclipse3.2.1压缩包。

将下载的Eclipse3.2压缩包,解压到系统某个目录(D:\eclipse),后面称为ECLIPSE_HOME

2.3    安装Tomcat5.5.17

http://www.apache.org/下载Tomcat5.5.17安装文件。

双击Tomcat5.5.17安装文件,安装Tomcat5.5.17到系统某个目录(D:\Tomcat5.5),后面称为TOMCAT_HOME

2.4    安装MySQL5.0.27

http://www.mysql.com/下载mysql-5.0.27-win32.zip压缩文件。

解压该文件后,双击MySQL5.0.27安装文件,安装MySQL5.0.27到系统某个目录(D:\Tomcat5.5),后面称为MySQL_HOME

2.5    下载jBPM3.1.2

jBPM的下载地址:http://www.jboss.com/products/jbpm/downloads

²       JBoss jBPMjBPM的软件包

²       JBoss jBPM Starters Kit是一个综合包,它包括了jBPM软件包、开发插件、一个配置好了的基于JBossjBPM示例、一些数据库配置文件示例。

²       JBoss jBPM Process Designer Plugin是辅助开发jBPMEclipse插件。

²       JBoss jBPM BPEL Extension jBPM关于BPEL的扩展包

本指南选择下载:JBoss jBPM Starters Kit 3.1.2。下载后解压到 D:\jbpm-starters-kit-3.1.2,后面简称JBPM_HOME。目录下含有五个子目录:

²       jbpm jBPM的软件包,包含源码,例子等文件内容。

²       jbpm-bpel只含有一个网页

²       jbpm-db各种数据库hibernate配置文件示例,有些还包含了相应的jdbc驱动程序。

²       jbpm-designer辅助开发jBPMEclipse插件,具体在jbpm-gpd-feature子目录中

²       jbpm-server一个已经配置好了的基于JBossjBPM示例。

2.6    安装jBPM的Eclipse开发插件

有个辅助工具开发起来方便一点,只不过现在 jBPM的开发工具插件功能还不算太强,也就一个“项目创建向导”的功能,让你:

²       不用再去配置classpath库的引用了

²       直接得到了一个jBPM的项目初始结构

其实吧,开发jBPM也不需要什么插件工具,在熟练了以后,库引用了项目初始结构都可以手工创建。

插件不用再去下载了,jbpm-starters-kit-3.1.2包里就有,目录地址如下: D:\jbpm-starters-kit-3.1.1\jbpm-designer\jbpm-gpd-feature\eclipse,插件的安装方式是链接式还是直接复制式,另外,注明一下Eclipse的版本我是用3.2.1,插件和Eclispe版本相关的,要注意了。

如果安装成功,则Eclipse首选项里多了一个JBoss jBPM,另外我们也需要到这个jBPM的首选项里做一些配置工作――指定jBPM的安装路径(如下图所示)。这个配置主要是为了找到jbpm下的各种jar包,好让Eclipse设置项目的库引用。

例如新建一个jbpm的工程后,其目录树结构如下图所示:

3        具体配置情况

3.1    更改工程名称

JBPM_HOME\jbpm目录下找到文件“.project”,用记事本打开,将以下内容<name>jbpm.3_BRANCH_3_1</name>更改为<name>jbpm.3</name>,保存文件。

在将JBPM_HOME\jbpm文件夹更改为JBPM_HOME\jbpm.3。后面引用工程名称为jbpm.3

3.2    导入工程

启动eclipse,通过“Import”将jBPM工程导入eclipse中。如下图所示:

(1) 选择已经存在的工程

(2) 选择工程

点击“Finish”完成导入,导入后的工程情况如下图所示:

(3) 工程结构图

3.3    建库

MySQL中建立数据库jbpm。字符集采用GBK。建表SQL如下:

CREATE DATABASE `jbpm`

    CHARACTER SET 'gbk'

    COLLATE 'gbk_chinese_ci';

3.4    添加MySQL驱动

在工程jbpm.3lib目录下建立mysql文件夹,将MySQL需要的JDBC驱动程序拷贝其中。目录结构如下图所示:

(4) MySQL驱动位置

3.5    建立数据库表

3.5.1  创建create.db.hibernate.properties

在工程jbpm.3src/resources目录下建立mysql目录,并将jbpm.3/src/resources/hsqldb目录下的所有文件(create.db.hibernate.propertiesidentity.db.xml)拷贝入mysql中。目录结构如下图所示:

(5) MySQLcreate.db.hibernate.properties文件位置

3.5.2  修改create.db.hibernate.properties

eclipse中,双击工程jbpm.3/src/resources/mysql下的create.db.hibernate.properties,打开该文件,修改其中的内容。

修改前内容:

hibernate.dialect=org.hibernate.dialect.HSQLDialect

hibernate.connection.driver_class=org.hsqldb.jdbcDriver

hibernate.connection.url=jdbc:hsqldb:hsql://localhost:1701

hibernate.connection.username=sa

hibernate.connection.password=

hibernate.show_sql=true

修改后内容:

hibernate.dialect=org.hibernate.dialect.MySQLDialect

hibernate.connection.driver_class=com.mysql.jdbc.Driver

hibernate.connection.url=jdbc:mysql://127.0.0.1:3306/jbpm

hibernate.connection.username=root

hibernate.connection.password=root

hibernate.show_sql=true

修改完后,保存并关闭文件。

3.5.3  修改build.deploy.xml

eclipse中打开工程jbpm.3下的build.deploy.xml文件,在

    <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">

之前,添加如下内容:

    <target

        name="create.db.mysql"

        depends="declare.jbpm.tasks"

        description="creates a mysql database with the jbpm tables and loads the processes in there.

        Run this target after starting mysql">

        <jbpmschema

            actions="create"

            cfg="${basedir}/src/config.files/hibernate.cfg.xml"

            properties="${basedir}/src/resources/mysql/create.db.hibernate.properties" />

        <loadidentities

            file="${basedir}/src/resources/mysql/identity.db.xml"

            cfg="${basedir}/src/config.files/hibernate.cfg.xml"

            properties="${basedir}/src/resources/mysql/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/mysql/create.db.hibernate.properties">

            <fileset dir="build" includes="*.process" />

        </deployprocess>

    </target>

    <property

        file="${basedir}/src/resources/mysql/create.db.hibernate.properties" />

    <target

        name="execute.mysql.sql"

        description="execute a mysql sql script with -Dmysql.script=path-to-script.">

        <sql

            driver="${hibernate.connection.driver_class}"

            url="${hibernate.connection.url}" userid="${hibernate.connection.username}"

            password="${hibernate.connection.password}"

            delimiter=";"

            autocommit="true"

            onerror="continue">

            <classpath

                refid="classpath.ant" />

            <transaction

                src="${mysql.script}" />

        </sql>

    </target>

3.5.4  生成库表

eclipse中,右键点击工程jbpm.3下的build.deploy.xml文件,在菜单中选择“Run As\Ant Build…”,在出现的窗口中选择“target”为“create db mysql”,然后点击“Run”按钮,开始运行Ant

(6) Ant建立库表

等运行完毕后,可以在MySQl中查看到相应得数据库表结构已经建立,并且已经部署了websale需要用到的流程信息。

(7) jbpm_processdefinition表中的流程名称

(8) jbpm_variableaccess表中信息

3.6    建立web运行需要内容

3.6.1  修改hibernate.cfg.xml

eclipse中打开工程jbpm.3下的src/config.files目录下的hibernate.cfg.xml文件,修改其中的内容为:

    <!-- jdbc connection properties -->

    <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://127.0.0.1:3306/jbpm

    </property>

    <property name="hibernate.connection.username">root</property>

    <property name="hibernate.connection.password">root</property>

    <!-- other hibernate properties -->

    <property name="hibernate.show_sql">true</property>

    <property name="hibernate.format_sql">false</property>

    <property name="hibernate.use_sql_comments">false</property>

注意,只修改跟数据库连接有关的内容,这里你可以根据自己数据库的不同,而建立不同的hibernate连接。

3.6.2  修改build.deploy.xml

eclipse中打开工程jbpm.3下的build.deploy.xml文件,找到如下“target”,

    <target name="build.webapp" description="builds jbpm.war">

       <ant antfile="build.xml" target="build.webapp" />

       <mkdir dir="build/jbpm.war.dir" />

       <copy todir="build/jbpm.war.dir">

           <fileset dir="src/resources/jbpm.war" />

       </copy>

………………………………………

       <jar destfile="build/jbpm.war">

           <fileset dir="build/jbpm.war.dir" />

       </jar>

    </target>

并将此“target”内容更改为如下内容:

    <target name="build.webapp" description="builds jbpm.war">

       <ant antfile="build.xml" target="build.webapp" />

       <mkdir dir="build/jbpm.war.dir" />

       <copy todir="build/jbpm.war.dir">

           <fileset dir="src/resources/jbpm.war" />

       </copy>

       <copy todir="build/jbpm.war.dir/WEB-INF/classes">

           <fileset dir="src/config.files" />

       </copy>

       <copy todir="build/jbpm.war.dir/WEB-INF/lib">

           <fileset dir="build"

              includes="jbpm*.jar,converter.jar"

              excludes="*src*.jar" />

           <fileset dir="lib/jsf" includes="*.jar" />

           <fileset dir="lib/dom4j" includes="*.jar" />

           <fileset dir="lib/hibernate" includes="*.jar" />

           <fileset dir="lib/mysql" includes="*.jar" />

           <fileset dir="lib/commons"

              includes="commons-digester-*.jar,

                     commons-beanutils-*.jar,

                     commons-fileupload-*.jar" />

           <fileset dir="lib/jboss"

              includes="*.jar"

              excludes="jboss*.jar,

                     *servlet*.jar,

                     *hsql*.jar" />

       </copy>

       <jar destfile="build/jbpm.war">

           <fileset dir="build/jbpm.war.dir" />

       </jar>

    </target>

3.6.3  打包成war文件

eclipse中,右键点击工程jbpm.3下的build.deploy.xml文件,在菜单中选择“Run As\Ant Build…”,在出现的窗口中选择“target”为“build webapp”,然后点击“Run”按钮,开始运行Ant

(9) Ant打包war文件

3.7    发布应用

在工程jbpm.3build目录中,将jbpm.war文件拷贝到TOMCAT_HOME\webapps目录下。启动Tomcat。启动完成后,日志会不断输出,其中最后一句是“DEBUG [StaticNotifier] going to wait for (CMD_EXECUTOR, java.lang.Object@1df59bd) ”,这表示 jBPM 在开始工作了,它不断进行轮询。

在浏览器中输入地址http://localhost:8080/jbpm,出现登录页面,配置成功。

4        运行应用

打开网页:http://localhost:8080/jbpm/得到如下画面

(10) 登录界面

这是一个已经用jBPM开发好的用户定单流程,具有下单、审核、估价等流程。

cookie monster用户登录,选择“create new web sale order”可以创建一个定单。如下图所示,在图左边是填写的定单情况,右边一整个定货流程的示意图,红色框表示流程进行到哪一步了。填写好定单好,选择“Save and Close Task”,完成定单提交。

(11) 创建新任务

选择右上角的“Login as another user”以另外一个用户名ernie登录。这时可以看到ernie用户的任务列表中多了一项。

(12) 处理任务

点进去后,显示如下画面。在 comment项填写意见,选 OK 按钮,进入到下一步。如果选择 more info needed按钮,则打回给 cookie monster 用户修改定单。

(13) 处理内容

5        结束语

本文比较简单的阐述了jbmpmysqltomcat之间的配置管理。对于其他数据库以及web容器其方式是一样的,可参照本配置指南进行相关配置。