搭建JBPM4.4和Struts2.2.1、Spring2.5.6开发环境:
(1):创建JBPM的主配置文件:jbpm.cfg.xml。该文件在JBPM下的/install/src/cfg/jbpm/spring.jbpm.cfg.xml。将spring的前缀去掉后copy到项目的src目录下
(2):spring的核心配置文件applicationContext.xml。该文件也不需要自己编写,具体查找目录:\install\src\cfg\spring\applicationContext.xml。同样是copy到src目录下,修改其中的dataSource中的数据库连接选项即可
(3):hibernate核心配置文件:\install\src\cfg\hibernate\spring。由于我使用的是sqlserver数据库,而JBPM没有提供sqlserver的Hibernate配置文件.可以复制mysql的配置文件,更改一下hibernate.dialect属性即可.记住:将该文件拷贝到src目录下后要改变一下文件名:只需和applicationContext.xml中sessionFactory下configLocation属性里配置的一致即可。
到此为止JBPM和Spring 整合就已经完成。
Spring 的配置文件里封装了processEngine的引用,在以后的类中想要用到ProcessEngine的时候只需注入即可。
要和数据库进行操作,数据库里必须有JBPM所需要的16张表,JBPM4本身没有提供创建sqlserver数据表的脚本,但网上有很多网友提供了该脚本,也可以参考我的另外一片博客。
接下来就是配置struts2和Spring的环境了这里就不再详述了。
注:JBPM和tomcat6整合的时候经常报java.lang.LinkageError:异常。解决办法:
将项目lib目录下的juel.jar, juel-engine.jar, juel-impl.jar三个包复制到tomcat6的lib目录下,并且删除项目下的这三个jar包。
附1:JBPM4实现zip流形式发布流程定义:
ZipInputStream zipin=null;
try {
zipin = new ZipInputStream(new FileInputStream(new File(path)));
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.createDeployment().addResourcesFromZipInputStream(zipin).deploy();
} catch (Exception e) {
ActionContext.getContext().put("error", "发布失败");
return INPUT;
}finally{
zipin.close();
}
将定义好的jpdl文件和同时生成的png图片文件打包为.zip的形式然后就可以发布。
附2:JBPM最小依赖jar包
jbpm.jar
activation.jar
antlr.jar
commons-collections.jar
commons-logging.jar
dom4j.jar
hibernate-code.jar
junit.jar
log4j.jar
hsqldb.jar
javassist.jar
juel-api.jar
juel-impl.jar
slf4j-api.jar
slf4j-jdk14.jar
mail.jar
jta.jar