grails1.3.5整合JBMP4.4
根据
http://www.intelligrape.com/blog/2010/05/14/embedding-jbpm-4-3-in-a-grails-1-2-2-application/
?http://hi.baidu.com/xionglian1123/blog/item/95d7c719de1f0adbac6e75a1.html?
进行整合
?
1 首先现在JBPM4.3
?
2 将下载的文件解压缩,将jbpm.jar文件拷贝到你项目下的lib目录下3 同时在JBPM解压缩文件中${jbpmHome}/lib的mail.jar拷贝到你项目下的lib目录下4 在项目中的conf目录下创建一个流程描述文件,文件名称为helloWorld.jpdl.xml,代码如下所示:7在confhibernate文件夹下面配置hibernate.cfg.xml<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
????????? "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
????????? "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
???? <mapping resource="jbpm.repository.hbm.xml" />
???? <mapping resource="jbpm.execution.hbm.xml" />
???? <mapping resource="jbpm.history.hbm.xml" />
???? <mapping resource="jbpm.task.hbm.xml" />
???? <mapping resource="jbpm.identity.hbm.xml" />
?????
</session-factory>
</hibernate-configuration>
8 在resources.groovy中创建如下的Spring bean
beans = {
springHelper(org.jbpm.pvm.internal.processengine.SpringHelper){
?????? jbpmCfg="jbpm.cfg.xml"
}
processEngine(springHelper:"createProcessEngine")?
}
数据源还是在DataSource.groovy里配置,grails中怎么用就怎么配置,没有什么变化
?
9 现在我们发布一个流程,并且需要使用Spring注入的ProcessEngine进行流程发布(可以在任何程序中)。def processEngine;发布流程的代码如下所示:
RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment() .addResourceFromClasspath("helloWorld.jpdl.xml") .deploy();ExecutionService executionService = processEngine.getExecutionService();executionService.startProcessInstanceByKey("helloWorld")?
?
因为在使用jbpm的时候,还会时不进的报错,说是某个类的某个成员变量没有get方法,我查了一下jbpm的源代码,像报这种错的多数是因为这个字段的是boolean类型的,而boolean类型源码中是没有get方法的,只有is方法,而在grails中需要的是get方法,那没办法,只有编译jbpm源码,加上get方法了,像这样需要改的类有好几处,我也是边用遇到了边改的,用到现在grails与jbpm整合还是没什么问题的。
?
另外本人使用db2而其clob,blob默认是255bytes,不修改数据库会报错,需要修改JBPM4_LOB中clob和blob的长度.参考?
http://www.bstek.com/wiki/pages/viewpage.action?pageId=7569647
?