jbpm4.4与spring 集成

版本:
jbpm4.4
spring3.0
mysql5.1.40

直接从jbpm4.4自带的文件到src目录:
从jbpm-4.4/install/src/cfg/hibernate/jdbc复制mysql.hibernate.cfg.xml到src目录,文件名改为jbpm.hibernate.cfg.xml。
从jbpm-4.4/install/src/cfg/spring复制applicationContext.xml到src目录。
从jbpm-4.4/install/src/cfg/jbpm复制spring.jbpm.cfg.xml到src目录,文件名改为jbpm.cfg.xml。
修改applicationContext.xml、jbpm.hibernate.cfg.xml的数据库配置信息,jbpm4.4与spring的集成就完成了,可以自己写测试文件测试,集成非常容易。

修改jbpm.hibernate.cfg.xml
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">XXXXX</property>
    <property name="hibernate.format_sql">true</property>
修改applicationContext.xml
  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/jbpm" />
    <property name="username" value="root" />
    <property name="password" value="tt880217" />
  </bean>

如果想修改jbpm.hibernate.cfg.xml的名为hibernate.cfg.xml,可在applicationContext.xml中修改。
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    <property name="dataSource" ref="dataSource" />
  </bean>


测试文件结构:
jbpm4.4与spring 集成 - selbat - selbat的博客
 

附:
Test.java

package com.egtc.test;

import java.util.List;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.TaskService;
import org.jbpm.api.task.Task;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Test {

/**
* @param args
*/
public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        applicationContext.start();
        ProcessEngine processEngine = (ProcessEngine)applicationContext.getBean("processEngine");
        ExecutionService executionService = processEngine.getExecutionService();
        TaskService taskService = processEngine.getTaskService();
        //发布流程
        String deploymentId = processEngine.getRepositoryService().createDeployment()
        .addResourceFromClasspath("swing.jpdl.xml").deploy();
        System.out.println("流程发布ID:"+deploymentId);
        
        //启动一个流程实例
        ProcessInstance processInstance = executionService.startProcessInstanceByKey("swing");
        System.out.println("流程实例ID:" + processInstance.getId());
        //A处理任务
        List<Task> taskList_A = taskService.findPersonalTasks("A");
        System.out.println("A待处理任务数:" + taskList_A.size());
        if(taskList_A.size() > 0){
            Task task = taskList_A.get(0);
            taskService.completeTask(task.getId());
        }
        
        //B处理任务
        List<Task> taskList_B = taskService.findPersonalTasks("B");
        System.out.println("B待处理任务数:" + taskList_B.size());
        if(taskList_B.size() > 0){
            Task task = taskList_B.get(0);
            taskService.completeTask(task.getId());
        }

}

}
posted on 2011-06-29 23:18  唐朝  阅读(614)  评论(0编辑  收藏  举报