jBPM4实战系列(二)jBPM4.4+ssh 整合配置及完整实例
来源:互联网 发布:域通电话 软件 编辑:程序博客网 时间:2024/05/18 22:55
1.在sessionFactory的mappingLocations属性加入以下几个jbpm.*.hbm.xml由jBPM自带
<value>classpath:jbpm.repository.hbm.xml</value>
<value>classpath:jbpm.execution.hbm.xml</value>
<value>classpath:jbpm.history.hbm.xml</value>
<value>classpath:jbpm.task.hbm.xml</value>
<value>classpath:jbpm.identity.hbm.xml</value>
2.jBPM自己内部的配置(spring来接管processEngine)
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
<bean id="processEngine" factory-bean="springHelper" factory-
method="createProcessEngine" />
这样子就配好啦。只要在要用的地方注入processEngine就可以了!简单吧
3.当然为了编程的方便,可以自己写个工具类,直接就可以通过注入这个类来获取所需要的jBPM服务
- package com.ht.util;
- import java.util.List;
- import java.util.Map;
- import java.util.zip.ZipInputStream;
- import org.jbpm.api.ExecutionService;
- import org.jbpm.api.HistoryService;
- import org.jbpm.api.ManagementService;
- import org.jbpm.api.ProcessDefinition;
- import org.jbpm.api.ProcessEngine;
- import org.jbpm.api.ProcessInstance;
- import org.jbpm.api.RepositoryService;
- import org.jbpm.api.TaskService;
- import org.jbpm.api.task.Task;
- /**
- * jBPM4.4工具类
- *
- * @author ht
- *
- */
- public class JBPMUtil {
- private ProcessEngine processEngine;
- private RepositoryService repositoryService = null;
- private ExecutionService executionService = null;
- private TaskService taskService = null;
- private HistoryService historyService = null;
- private ManagementService managementService = null;
- public JBPMUtil(){
- }
- public JBPMUtil(ProcessEngine processEngine) {
- this.processEngine = processEngine;
- repositoryService = processEngine.getRepositoryService();
- executionService = processEngine.getExecutionService();
- taskService = processEngine.getTaskService();
- historyService = processEngine.getHistoryService();
- managementService = processEngine.getManagementService();
- }
- public ProcessEngine getProcessEngine() {
- return processEngine;
- }
- public void setProcessEngine(ProcessEngine processEngine) {
- this.processEngine = processEngine;
- System.out.println("processEngine="+processEngine);
- repositoryService = processEngine.getRepositoryService();
- executionService = processEngine.getExecutionService();
- taskService = processEngine.getTaskService();
- historyService = processEngine.getHistoryService();
- managementService = processEngine.getManagementService();
- }
- public RepositoryService getRepositoryService() {
- return repositoryService;
- }
- public void setRepositoryService(RepositoryService repositoryService) {
- this.repositoryService = repositoryService;
- }
- public ExecutionService getExecutionService() {
- return executionService;
- }
- public void setExecutionService(ExecutionService executionService) {
- this.executionService = executionService;
- }
- public TaskService getTaskService() {
- return taskService;
- }
- public void setTaskService(TaskService taskService) {
- this.taskService = taskService;
- }
- public HistoryService getHistoryService() {
- return historyService;
- }
- public void setHistoryService(HistoryService historyService) {
- this.historyService = historyService;
- }
- public ManagementService getManagementService() {
- return managementService;
- }
- public void setManagementService(ManagementService managementService) {
- this.managementService = managementService;
- }
- /**
- * 部署新流程定义
- * @param resourceName
- * @return 返回流程定义id
- */
- public String deployNew(String resourceName) {
- return repositoryService.createDeployment().addResourceFromClasspath(
- resourceName).deploy();
- }
- /**
- * 部署新流程定义(zip)
- * @param resourceName
- * @return 返回流程定义id
- */
- public String deployZipNew(String resourceZipName){
- ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream(resourceZipName));
- return repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();
- }
- /**
- * 开始一个流程实例
- * @param id
- * @param map
- * @return
- */
- public ProcessInstance startPIById(String id,Map<String,?> map){
- return executionService.startProcessInstanceById(id, map);
- }
- /**
- * 完成任务
- * @param taskId
- * @param map
- */
- public void completeTask(String taskId,Map map){
- taskService.completeTask(taskId, map);
- }
- /**
- * 完成任务
- * @param taskId
- */
- public void completeTask(String taskId){
- taskService.completeTask(taskId);
- }
- /**
- * 将任务流转到指定名字的流程outcome中去
- * @param taskId
- * @param outcome
- */
- public void completeTask(String taskId,String outcome){
- taskService.completeTask(taskId, outcome);
- }
- /**
- * 获得所有发布了的流程
- * @return
- */
- public List<ProcessDefinition> getAllPdList(){
- return repositoryService.createProcessDefinitionQuery().list();
- }
- /**
- * 获得所有流程实例
- * @return
- */
- public List<ProcessInstance> getAllPiList(){
- return executionService.createProcessInstanceQuery().list();
- }
- /**
- * 根据流程实例Id,即executionId获取指定的变量值
- * @param executionId
- * @param variableName
- * @return
- */
- public Object getVariableByexecutionId(String executionId,String variableName){
- return executionService.getVariable(executionId, variableName);
- }
- /**
- * 根据任务id,即taskId获取指定变量值
- * @param taskId
- * @param variableName
- * @return
- */
- public Object getVariableByTaskId(String taskId,String variableName){
- return taskService.getVariable(taskId, variableName);
- }
- /**
- * 获取指定用户名字的任务
- * @param userName
- * @return
- */
- public List<Task> findPersonalTasks(String userName){
- return taskService.findPersonalTasks(userName);
- }
- /**
- * 根据任务id获取任务
- * @param taskId
- * @return
- */
- public Task getTask(String taskId) {
- return taskService.getTask(taskId);
- }
- /**
- * 级联删除流程定义,直接删除该流程定义下的所有实例
- *
- * @param deploymentId 流程定义id
- */
- public void deleteDeploymentCascade(String deploymentId) {
- repositoryService.deleteDeploymentCascade(deploymentId);
- }
- }
完整的application.xml:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
- <!-- 配置数据源,导入c3p0-0.9.1.2.jar-->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
- destroy-method="close">
- <property name="driverClass">
- <value>net.sourceforge.jtds.jdbc.Driver</value>
- </property>
- <property name="jdbcUrl">
- <value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=jBPM</value>
- </property>
- <property name="user">
- <value>sa</value>
- </property>
- <property name="password">
- <value>123</value>
- </property>
- </bean>
- <bean name="hibernateProperties"
- class="org.springframework.beans.factory.config.PropertiesFactoryBean">
- <property name="properties">
- <props>
- <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
- <prop key="hibernate.show_sql">true</prop>
- <prop key="hibernate.hbm2ddl.auto">update</prop>
- </props>
- </property>
- </bean>
- <!-- spring集成hibernate配置 -->
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="hibernateProperties" ref="hibernateProperties" />
- <property name="mappingLocations">
- <list>
- <value>classpath*:com/ht/entity/*.hbm.xml</value>
- <!-- 以下几个jbpm.*.hbm.xml由jBPM自带 -->
- <value>classpath:jbpm.repository.hbm.xml</value>
- <value>classpath:jbpm.execution.hbm.xml</value>
- <value>classpath:jbpm.history.hbm.xml</value>
- <value>classpath:jbpm.task.hbm.xml</value>
- <value>classpath:jbpm.identity.hbm.xml</value>
- </list>
- </property>
- </bean>
- <!-- jbpm配置 -->
- <bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
- <bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
- <bean id="jBPMUtil" class="com.ht.util.JBPMUtil">
- <property name="processEngine" ref="processEngine"></property>
- </bean>
- <!-- 事务配置 -->
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- </beans>
当然其他的配置还是比较多的。大家可以参照我前一篇文章。
ok.基本就是这样。具体的大家可以直接看项目
运行环境:myeclipse8.5+jBPM4.4+jdk1.6+sql server 2000(貌似网上没找到这种建表语句。所以我也上传了)。
其他的主要建表语句在\install\src\db下面。
比较大,jar包都没有放的。
转载至http://hellotommy.iteye.com/blog/804233- jBPM4实战系列(二)jBPM4.4+ssh 整合配置及完整实例
- JBPM4.4学习二------JBPM4.4+SSH+Tomcat+Sqlserver整合
- SSH整合JBPM4.4
- SSH整合JBPM4.4
- SSH+JBPM4+Tomcat6整合
- Jbpm4.4集成SSH
- Jbpm4.4集成SSH
- jbpm4.4开发环境配置+请假实例
- mybatis+springmvc+jbpm4整合配置
- jbpm4.4 会签实例
- jbpm4.4实例分享
- jbpm4.4 会签实例
- jBPM4.4实例Demo
- jbpm4.4审批实例
- SSH+Jbpm4
- JBPM4.4的包安装及配置
- 整合SSH(Struts2、Spring、Hibernate)和JBPM4.4
- jbpm学习--jbpm4.4 与 ssh框架的整合
- Oracle中没有 if exists(...)
- 交通灯管理系统
- What do 'statically linked' and 'dynamically linked' mean?
- static关键字
- ubuntu10.10安装rpm包遇到的一点问题及解决办法
- jBPM4实战系列(二)jBPM4.4+ssh 整合配置及完整实例
- MySQL索引设计及优化
- 一个非常大的投机股票的帮助
- 图片加水印
- 人的核心竟争力有时超过一半是来自重要而不紧急的事情
- getopt函数
- OllyDbg实用技巧六则
- ibatis中动态查询返回字段返回用resultClass="java.util.HashMap" 的问题
- 如何进行互联网项目开发