网上有很多这方面的资料,不过大部分都出自一个人的文章,而且应该大部分人是做不成功的。参考了Tyler Zhou的资料。简单测试了一下,成功。by smilingleo
http://tyler-zhou.javaeye.com/blog/163928
liferay集成了jbpm工作流,他是可以先择通过两种组件来调用JBPM的,servicemix和mule,根据Liferay的官方建议,最好选择mule.
1.Liferay官方网站下载liferay-portal-jbpm-web-4.3.2.war,liferay-portal-mule-web-4.3.2.war. 重命名为jbpm-web.war,mule-web.war 。(我测试时,用的Liferay版本是5.0, jbpm-web和mule是4.4.2, 没问题)
2.两个包都放到/webapps下面,liferay启动后会自动的解压,或者用WINRAR也可以解压。
3.webapps/ROOT/WEB-INF/classes/portal-ext.properties增加jbi.workflow.url=http://localhost:8080/mule-web/workflow注意端口号要和自已的相同。
4.如果要修改端口号那么还要修改webapps/mule-web/WEB-INF/mule-config.xml下
<property name="url" value="http://localhost:8080/jbpm-web/servlet" />端口号;
5.webapps/jbpm-web/WEB-INF/classes/hibernate.cfg.xml,先择自已用到的数据库类型并配置, webapps/jbpm-web/WEB-INF/sql下面有各种数据库脚本,选择自已的数据库。by smilingleo
6. 用下面的测试流程定义进行测试。
< process-definition xmlns ="urn:jbpm.org:jpdl-3.1" name ="Example Process" >
< start-state name ="start" >
< task >
< assignment class ="com.liferay.jbpm.handler.IdentityAssignmentHandler" >
< companyId > liferay.com </ companyId >
< type > user </ type >
< name > test@liferay.com </ name >
</ assignment >
< controller >
< variable name ="text:color" />
< variable name ="text:size" />
</ controller >
</ task >
< transition name ="to_t" to ="t" />
</ start-state >
< task-node name ="t" >
< task name ="t" >
< controller >
< variable name ="text:color" access ="read" />
< variable name ="text:size" access ="read" />
</ controller >
< assignment class ="com.liferay.jbpm.handler.IdentityAssignmentHandler" >
< companyId > liferay.com </ companyId >
< type > user </ type >
< name > test@liferay.com </ name >
</ assignment >
</ task >
< transition name ="to_end" to ='end' />
</ task-node >
< end-state name ="end" ></ end-state >
</ process-definition >
7. 在definitions中就可以看到定义的工作流了。点击后面的“Add instance”就可以创建一个工作流实例。