jbpm4整合struts2+spring25+hibernate33.docx
《jbpm4整合struts2+spring25+hibernate33.docx》由会员分享,可在线阅读,更多相关《jbpm4整合struts2+spring25+hibernate33.docx(17页珍藏版)》请在冰豆网上搜索。
jbpm4整合struts2+spring25+hibernate33
在网上,不管是XX、还是谷歌搜索了一下,截至到目前(2009-08-29),没有搜索出一个JBPM4结合其他框架的完成例子,都是一些简单的介绍,而且所有文章大同小异,虽然文章上千章,但是好像出自
一个之手,但是此人也只是大概讲解了一下,可能有些人会认为用JBPM4结合其他框架进行整合是非常简单,那么你的想法是错误的,JBPM4整合其他框架对JBPM4的IOC理解要非常清楚,同时,要对部分源代码进行了解,才可能一步一步的搭建起来框架,并且成功部署的过程.
如果不结合其他的框架进行整个开发(如:
spring、hibernate),JBPM4也有自己的一套IOC容器,能后将自己的服务配置到IOC容器中,能够很容易的运行容器所配置的服务,
这样它也能够在代码中减少一陀一陀的工厂类等代码的调用,降低了偶核性,但是如果结合spring框架来进行整个开发的话,那么就有两个容器,两个SessionFactory,但是系统中只考虑一个容器来
对服务进行管理,那么我们就要将jbpm4的服务移植到spring的IOC容器中,让spring来进行统一管理,这样通过spring的容器来管理服务、事务。
ssh2框架的搭建我这里就不啰嗦了,我主要就这个框架的基础上来整合jbpm4
第一步:
加入jbpm4的jpdl插件,这个步骤非常简单,但是可能会出现下面的错误
把jbpm4加入到项目中遇到的问题:
无法导入插件jpdl(导入插件后没有出现可视化流程操作器的入口,无法进行可视化流程建立)
解决方法:
先前本人使用myeclipse6.0.1,在此版本上本人做过JBPM3的项目,在做JBPM4时,很自然的想到在该IDE上进行JBPM4的开发,但是一直都无法成功江JBPM4的jpdl插件安装成功,因此
不断的换各种安装插件的方式,浪费了很多时间,后无意在myclipse7.1.1中尝试安装jpdl插件,竟然成功,后才发现myeclipse6不支持jbpm4,最终本人选择IDEmyclipse7.1.1来进行
开发.
第二步:
创建JBPM4的数据库文件、JBPM4相关jar包、JBPM4的相关配置文件
数据库文件:
解压下载的jbpm4.0,jbpm4.0根目录下的db\schema.scripts目录下,这里存放的是jbpm4数据库文件的脚本,根据自己的需要选择相应数据库脚本文件进行导入
JBPM4的jar包:
jbpm4.0根目录下jbpm.jar
jbpm4-spring.jar,这两个jar文件内容大致相同,但是某些类也是对方所不具有的
lib目下的相关jar包(不要全部导入,因为这里包含hibernate,还有一些公共的jar包,可能你的工程中已经含有这些jar包,根据需要导入相关的jar包即可)
JBPM4的相关配置文件:
鉴于大家jbpm对配置文件位置的存放不清楚,以及因为版本的不同,造成文件内容和文件名不一样,所以对需要在项目中导入的文件及内容(基本配置)做了一个总结:
jbpm.cfg.xml,内容如下:
Xml代码
1.
xml version="1.0" encoding="UTF-8"?
>
2.
3.
4.
5.
6.
7.
8.
9.
10.
-- Job executor is excluded for running the example test cases. -->
11.
-- To enable timers and messages in production use, this should be included. -->
12.
--
13.
14. -->
15.
16.
17.
18.
19.
xmlversion="1.0"encoding="UTF-8"?
>
--Jobexecutorisexcludedforrunningtheexampletestcases.-->
--Toenabletimersandmessagesinproductionuse,thisshouldbeincluded.-->
--
-->
jbpm.mail.properties,文件内容:
Xml代码
1.mail.smtp.host localhost
2.mail.smtp.port 2525
3.mail.from noreply@jbpm.org
mail.smtp.hostlocalhost
mail.smtp.port2525
mail.fromnoreply@jbpm.org
jbpm.mail.templates.examples.xml,文件内容:
Xml代码
1.
xml version="1.0" encoding="UTF-8"?
>
2.
3.
4.
5.
6.
7.
8.
9.
10.
11. rectify ${newspaper}
12. ${newspaper} ${date} ${details}
13.
14.
15.
16.
17.
xmlversion="1.0"encoding="UTF-8"?
>
rectify${newspaper}
${newspaper}${date}${details}
jbpm.spring.default.cfg.xml,文件内容:
Xml代码
1.
xml version="1.0" encoding="UTF-8"?
>
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
--
15.
16.
17.
18.
19.
20.-->
21. 22. default-script-language="juel"
23. read-contexts="execution, environment, process-engine"
24. write-context="">
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36. 00-12:
00 and 12:
30-17:
00"/>
37. 00-12:
00 and 12:
30-17:
00"/>
38. 00-12:
00 and 12:
30-17:
00"/>
39. 00-12:
00 and 12:
30-17:
00"/>
40. 00-12:
00 and 12:
30-17:
00"/>
41.
42.
43.
44.
45.
46. ${task.name}
47. [CDATA[Hi ${task.assignee},
48.Task "${task.name}" has been assigned to you.
49.${task.description}
50.
51.Sent by JBoss jBPM
52.]]>
53.
54.
55.
56.
57. ${task.name}
58. [CDATA[Hey ${task.assignee},
59.Do not forget about task "${task.name}".
60.${task.description}
61.
62.Sent by JBoss jBPM
63.]]>
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
xmlversion="1.0"encoding="UTF-8"?
>
--
-->
default-script-language="juel"
read-contexts="execution,environment,process-engine"
write-context="">
00-12:
00and12:
30-17:
00"/>
00-12:
00and12:
30-17:
00"/>
00-12:
00and12:
30-17:
00"/>
00-12:
00and12:
30-17:
00"/>
00-12:
00and12:
30-17:
00"/>
${task.name}
[CDATA[Hi${task.assignee},
Task"${task.name}"hasbeenassignedtoyou.
${task.description}
SentbyJBossjBPM
]]>
${task.name}
[CDATA[Hey${task.assignee},
Donotforgetabouttask"${task.name}".
${task.description}
SentbyJBossjBPM
]]>
jbpm.spring.hibernate.cfg.xml,文件内容:
Xml代码
1.
xml version="1.0" encoding="UTF-8"?
>
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
xmlversion="1.0"encoding="UTF-8"?
>
logback.xml,文件内容:
Xml代码
1.
2.
3.
4. %d{HH:
mm:
ss.SSS} %-5level %logger{36} - %msg%n
5.
--
6. %date [%thread] %-5level %logger{80} - %msg%n
7.-->
8.
9.