jbpmWord文档下载推荐.docx

上传人:b****6 文档编号:20222393 上传时间:2023-01-20 格式:DOCX 页数:24 大小:336.86KB
下载 相关 举报
jbpmWord文档下载推荐.docx_第1页
第1页 / 共24页
jbpmWord文档下载推荐.docx_第2页
第2页 / 共24页
jbpmWord文档下载推荐.docx_第3页
第3页 / 共24页
jbpmWord文档下载推荐.docx_第4页
第4页 / 共24页
jbpmWord文档下载推荐.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

jbpmWord文档下载推荐.docx

《jbpmWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《jbpmWord文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。

jbpmWord文档下载推荐.docx

而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action嘛。

Jbpm的如来神掌就没有上面的简单了,它结合应用了状态图+活动图+PetriNet的知识,而且,这里的活动图还是UML2.0版的。

UML2.0的活动图中,节点不叫活动(Activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。

一个活动图展现一系列的动作,这些动作组成了活动。

Jbpm把action也改名了,称为state。

Jbpm使用的状态图的概念有transition/event等,这个自己去看吧。

Jbpm来内部实现中还采用了PetriNet的概念,如token,signal等。

什么?

又不知道PetriNet什么东东?

那你大学是学计算机的吗?

不是?

那你可能是学文科的,学机械/电气/土木工程/交通运输等专业都有接触PetriNet的课程,如果没有学过,还是看看jbpm吧,反正我们也不搞理论,知道大致概念就行。

jBPM开发入门指南

(1)

工作流虽然还在不成熟的发展阶段,甚至还没有一个公认的规范标准。

但其应用却已经在快速展开,这说明市场对工作流框架的需求是急迫而巨大的。

我们公司的后台短信管理系统涉及短信编发、领导层层审核等操作,这是一个比较典型的工作流系统。

过去我们用的工作流引擎是shark,然后在使用后发现其过于庞大,后台数据库操作频繁而未进行优化,直接导致的后果就是前台操作缓慢。

于是经研究决定,将工作流引擎由shark换成jBPM。

jBPM之前是一个开源软件,后加入JBoss组织。

正好我们公司也是用JBoss的。

不过jBPM并没有绑定在JBOSS上,Tomcat等也可以使用它。

jBPM的正处在不断发展中,做为开源软件的特点,其设计变化往往很大。

所以一些过去的资料可能已经不适用了。

于是作者根据自己的使用经验,重新整理出这份文档,以备学习参考。

注:

本文使用的jBPM版本为3.1.1

环境准备

1、安装JDK

所有JAVA开发第一个需要安装的,没什么好说的。

记得把系统变量JAVA_HOME设上。

2、安装Ant

Ant是使用jBPM必须的一个工具。

jBPM中的很多操作都要用到Ant。

安装方法:

(1)先下载:

http:

//archive.apache.org/dist/ant/binaries/,选一个如:

apache-ant-1.6.5-bin.zip。

(2)解压到D:

\ant(当然其他目录也可以)。

(3)设置如下系统变量:

ANT_HOME=d:

\ant。

(4)把%ANT_HOME%\bin加入到系统变量PATH中。

3、安装Eclipse

Eclipse不是开发jBPM必须的工具,但它是对jBPM开发很有帮助的工具,特别是jBPM提供了一个Eclipse插件用来辅助开发jBPM。

关于Eclipse的安装不赘述了,本文用的版本是:

Eclipse3.2

 

安装jBPM

jBPM的下载地址:

 

● 

JBossjBPM是jBPM的软件包

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

JBossjBPMProcessDesignerPlugin 是辅助开发jBPM的Eclipse插件。

JBossjBPMBPELExtensionjBPM关于BPEL的扩展包

本指南选择下载:

JBossjBPMStartersKit。

下载后解压到D:

\jbpm-starters-kit-3.1,目录下含有五个子目录:

●jbpmjBPM的软件包

●jbpm-bpel只含有一个网页

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

●jbpm-designer 辅助开发jBPM的Eclipse插件,具体在jbpm-gpd-feature子目录中

●jbpm-server已经配置好了的基于JBoss的jBPM示例.

感觉下工作流

前面我们说了,在JBossjBPMStartersKit的jbpm-server目录是一个已经配置好的了jBPM示例,那么让我们来感觉一下jBPM做出的东西吧。

双击jbpm-server目录下的start.bat文件,启动JBoss服务。

这时会打开一个DOS窗口,启动完成后,日志会不断输出,其中最后一句是“13:

55:

39,937DEBUG[StaticNotifier]goingtowaitfor(CMD_EXECUTOR,java.lang.Object@1df59bd)”,这表示jBPM在开始工作了,它不断进行轮询。

打开网页:

//localhost:

8080/jbpm/得到如下画面

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

它所用的数据库是一个内置的数据库。

以cookiemonster用户登录,选择“createnewwebsaleorder”可以创建一个定单。

如下图所示,在图左边是填写的定单情况,右边一整个定货流程的示意图,红色框表示流程进行到哪一步了。

填写好定单好,选择“SaveandCloseTask”,完成定单提交。

选择右上角的“Loginasanotheruser”以另外一个用户名ernie登录。

这时可以看到ernie用户的任务列表中多了一项。

点进去后,显示如下画面。

这个示例对中文的支持不好,全都显示成了unicode码了。

不管这什么多,反正知道是这么回事就行了。

在comment项填写意见,选OK按钮,进入到下一步。

如果选择moreinfoneeded按钮,则打回给cookiemonster用户修改定单。

下面的流程,这里就不再赘述了。

在这个很标准的工作流示例中,我们基本可以看到jBPM的应用范围还是比较广的。

而且从这个示例,我们是看不出有jBPM的,也就是说jBPM在后台起着作用。

从这个例子,还看不出jBPM的优势。

不过,如果在一个流程不确定,经常需要变动的项目中,jBPM的好处将会显然出来。

应用jBPM后,改变流程只需改变流程描述文件,这将在后面的内容提到。

这是一个已做好的示例,接下来我们将仿造这个实例来开发一个请假流程。

jBPM开发入门指南

(2)

4数据库初始化

jBPM需要数据库支持,jBPM会把自己的一个初始化数据存储到数据库,同时工作流的数据也是存储到数据库中的。

jBPM使用Hibernate来做为自己的存储层,因此只要是Hibernate支持的数据库,jBPM也就支持。

本文先以MySQL为例,然后再以Oracle为例,来谈谈jBPM的数据库初始化操作。

在上面的JBoss自带的示例中,并没有设置数据库,那是因为jBPM默认使用的是内存数据库hsqldb。

4.1MySQL

1、首先安装MySQL。

MySQL的安装比较简单,网上也有很多文章,本文不再赘述。

本指南所用MySQL版本为MySQL4.1(forwindows)。

再找一个MySQL客户端,目的是方便查看数据库中的数据,本文推荐使用MySQL网站上免费提供的“MySQLQueryBrower”,当然你用其他的客户端也行,比如MySQL-Front。

2、建库

MySQL中创建一个库,库名:

jbpm

3、生成建表的SQL语句并建表

将jbpm-starters-kit-3.1.1下的子目录jbpm改名为jbpm.3,否则在执行下面的ant命令时会报如jbpm.3目录不存在的错误:

D:

\jbpm-starters-kit-3.1.1\jbpm-db\build.xml:

361:

Thefollowingerroroccurredwhileexecutingthisline:

68:

BasedirD:

\jbpm-starters-kit-3.1.1\jbpm.3doesnotexist

在DOS窗下,进入D:

\jbpm-starters-kit-3.1.1\jbpm-db目录,执行如下命令:

antmysql.scripts

执行成功后,在D:

\jbpm-starters-kit-3.1.1\jbpm-db\build\mysql\scripts目录里生成了四个sql文件,它们做什么用的一看名字就知道了。

在MySQL客户端中执行“mysql.create.sql”脚本,这样将在jbpm库中创建一个个的数据表。

4.2Oracle

先安装好Oracle服务器。

我们公司有现存的Oracle服务器,也提供给了我一个属于我自己的用户名,一登录就可以任意在我的库之下创建表了。

所以这一步就省了,没有的自个先装好吧。

访问Oracle推荐用“PLSQLDeveloper”。

不过要连接Oracle还要在本机上装上Oracle自己的客户端程序,里面提供了JDBC包和一些配置。

要连接服务器还得配置一下,我一般都是不用GUI而直接改tnsnames.ora文件,在我的电脑里此文件的目录地址是:

D:

\oracle\ora92\network\ADMIN\tnsnames.ora,内容如下(两面有两个配置了):

#TNSNAMES.ORANetworkConfigurationFile:

E:

\oracle\ora92\network\admin\tnsnames.ora

#GeneratedbyOracleconfigurationtools.

WXXRDB_192.168.3.2=

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.2)(PORT=1521))

(CONNECT_DATA=

(SID=wxxrDB)

(SERVER=DEDICATED)

WXXRDB_192.168.4.2=

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.2)(PORT=1521))

前面都是Oracle的一些知识,不会的Google一下吧。

最后配置好后,用PLSQLDeveloper输入你的用户名和密码联接到Oracle,就算OK了。

参考上面MySQL的步骤,基本一样:

(1) 

将jbpm改名为jbpm.3

(2) 

再执行antoracle.scripts

(3) 

用jbpm-db\build\oracle\scripts目录的oracle.create.sql脚本,在Oracle中生成jBPM的所有表。

在“PLSQLDeveloper”中可以新建一个CommandWindows窗口然后输入命令:

@D:

\jbpm-starters-kit-3.1.1\jbpm-db\build\oracle\scripts\oracle.create.sql

jBPM开发入门指南(3)

5安装jBPM的Eclipse开发插件

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

(1)不用再去配置classpath库的引用了

(2)直接得到了一个jBPM的项目初始结构

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

插件不用再去下载了,jbpm-starters-kit-3.1.1包里就有,目录地址如下:

\jbpm-starters-kit-3.1.1\jbpm-designer\jbpm-gpd-feature\eclipse,插件的安装方式是链接式还是直接复制式,任选吧。

不懂的就去看看《Eclipse从入门精通》这本书,在前面章节都有讲到。

另外,注明一下Eclipse的版本我是用3.2,插件和Eclispe版本相关的,要注意了。

如果安装成功,则Eclipse首选项里多了一个JBossjBPM,另外我们也需要到这个jBPM的首选项里做一些配置工作――指定jBPM的安装路径(如下图所示)。

这个配置主要是为了找到jbpm下的各种jar包,好让Eclipse设置项目的库引用。

本文指向路径是d:

\jbpm-starters-kit-3.1.1\jbpm.3

6jBPM的HelloWorld

6.1新建jBPM项目

主菜单“文件->新建->项目”,在弹出的对话框里,有“ProcessProject”项,如下图所示:

选上好,单击“下一步”,起个名“myjbpm”,然后就可以单击“完成”了。

然后就生成了如下图所示的一个项目结构:

这个项目和通常Eclipse的项目结构有点不同,不过这是一个现在非常流行的项目结构,src/java存放源文件,test/java存放相应的JUnit单元测试代码。

如果你用Maven来编译构建项目,对这种目录结构一定不陌生。

项目创建起了,介绍一下里面的文件吧:

●MessageActionHandler,自动生成的一个ActionHandler。

不想要可以删掉。

●ehcache.xmlcache的配置文件,里面有很详解的英文说明。

没有必要可以不用改它。

hibernate.cfg.xml jBPM是用Hibernate进行工作流的数据存储的,这个就是Hibernate的配置文件。

后面我们将讲到如何配置这个文件。

jbpm.cfg.xml jbpm本身的配置文件。

现在是空的,它用的是缺省配置,你想知道有哪些配置就去看这个文件D:

\jbpm-starters-kit-3.1.1\jbpm.3\src\java.jbpm\org\jbpm\default.jbpm.cfg.xml

log4j.properties 这个是日志API包log4j的配置文件,用过log4j的都知道。

SimpleProcessTest.java 这个是对最重要的流程配置文件的processdefinition.xml单元测试代码。

这里表扬一点,jBPM的优良设计使得它的可测试性非常之高,喜欢写t单元测试的人有福了。

gpd.xml 用于生成流程图的定义文件。

都是一些方框的坐标和长宽

processdefinition.xml 这个是对最重要的流程配置文件,以后写流程要经常和它打交道。

processimage.jpg 一个流程图

从项目结构来看,我们没有看到JSP网页程序,也没有看到GUI客户端程序,这些代码都是要我们以后开发中来写的。

但本文不准备用JSP、GUI(Swing、SWT)来做示例,而是用JUnit代码来做使用jBPM客户端来演示。

因为jBPM实际上是一个后台框架,至于前台是JSP还是Swing还是无界面的java.class都是无关紧要的。

在教程里用无界面的java.class来做客户端则更方便一些,如果进一步采用JUnit,则这样的java.class同时还具备了单元测试的功能。

以后就是用JSP写了WEB页面,我们还是可以用这些JUnit程序来做单元测试,避免了频繁的鼠标点按WEB页面这样的力气活。

所以在jBPM自带的英文教程里都是一个JUnit程序,不仔佃看还真摸不着头脑。

6.2 修改hibernate.cfg.xml

hibernate.cfg.xml的默认设置是用HSQL,这是一个内存数据库,这种内存数据库用来代替项目实际所用的数据库来做单元测试挺不错的。

不过我们这里是要试试用MySQL、Oracle,那就改一下设置吧。

配置值可参考D:

\jbpm-starters-kit-3.1.1\jbpm-db对应子目录下的hibernate.properties文件。

1、MySQL的更改如下:

<

propertyname="

hibernate.dialect"

>

org.hibernate.dialect.MySQLDialect<

/property>

hibernate.connection.driver_class"

com.mysql.jdbc.Driver<

hibernate.connection.url"

jdbc:

mysql:

3306/jbpm<

hibernate.connection.username"

root<

hibernate.connection.password"

123456<

2、Oracle的更改如下:

org.hibernate.dialect.OracleDialect<

oracle.jdbc.driver.OracleDriver<

oracle:

thin:

@192.168.123.10:

1521:

wxxrDB<

chengang<

如果你装了Oracle的客户端,并且D:

\oracle\ora92\network\ADMIN\tnsnames.ora里做了如下的设置

WXXRDB_192.168.123.10=

(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.123.10)(PORT=1521))

则Oracle的hibernate.connection.url项也可以设为:

jdbc:

oci:

@WXXRDB_192.168.123.10

6.3 完善库引用

虽然jBPM在创建项目之初给我们设置好了库引用,如下图

但后面运行时还是报一些NoClassDefFoundError异常,如没有对hibernate3.jar的引用导致下面的错误

java.lang.NoClassDefFoundError:

org/hibernate/Session

atorg.jbpm.persistence.db.DbPersistenceServiceFactory.openService(DbPersistenceServiceFactory.java:

55)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1