`

【转】jbpm4.4与spring集成

阅读更多

下面是集成方法。

版本:
jbpm4.3
spring 3.0.2
mysql5.1.40

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

不过在applicationContext.xml和hibernate.cfg.xml两个文件都要改数据库信息有点麻烦,所以只复制 applicationContext.xml、spring.jbpm.cfg.xml两个文件到src目录,把hibernate.cfg.xml的配置整进spring的配置文件applicationContext.xml中。
applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.      xmlns:p="http://www.springframework.org/schema/p"
  5.         xmlns:jee="http://www.springframework.org/schema/jee" 
  6.         xmlns:tx="http://www.springframework.org/schema/tx"
  7.         xmlns:context="http://www.springframework.org/schema/context" 
  8.         xmlns:aop="http://www.springframework.org/schema/aop"
  9.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
  10.         default-lazy-init="true">
  11. <context:annotation-config />
  12. <bean
  13.   class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
  14.   p:location="hibernate.properties"
  15.   p:ignoreUnresolvablePlaceholders="true" />
  16.   <bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
  17.   <bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />
  18.   <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  19.     <property name="dataSource" ref="dataSource" />
  20.         <property name="mappingResources">
  21.                 <list>
  22.                         <value>jbpm.repository.hbm.xml</value>
  23.                         <value>jbpm.execution.hbm.xml</value>
  24.                         <value>jbpm.history.hbm.xml</value>
  25.                         <value>jbpm.task.hbm.xml</value>
  26.                         <value>jbpm.identity.hbm.xml</value>
  27.                 </list>
  28.         </property>
  29.         <property name="hibernateProperties">
  30.                 <props>
  31.                                 <prop key="hibernate.dialect">${dataSource.dialect}</prop>
  32.                                 <prop key="hibernate.hbm2ddl.auto">${dataSource.hbm2ddl.auto}</prop>
  33.                         </props>
  34.         </property>
  35.   </bean>
  36.   
  37.   <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  38.     <property name="sessionFactory" ref="sessionFactory" />
  39.     <property name="dataSource" ref="dataSource" />
  40.   </bean>
  41.   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  42.     <property name="driverClassName" value="${dataSource.driverClassName}" />
  43.     <property name="url" value="${dataSource.url}" />
  44.     <property name="username" value="${dataSource.username}" />
  45.     <property name="password" value="${dataSource.password}" />
  46.   </bean>
  47. </beans>
复制代码

新建文件hibernate.properties,主要用来配置连接数据库信息

  1. dataSource.password=
  2. dataSource.username=root
  3. dataSource.databaseName=jbpmdb
  4. dataSource.driverClassName=com.mysql.jdbc.Driver
  5. dataSource.dialect=org.hibernate.dialect.MySQLInnoDBDialect
  6. dataSource.serverName=localhost:3306
  7. dataSource.url=jdbc:mysql://${dataSource.serverName}/${dataSource.databaseName}
  8. dataSource.properties=user=${dataSource.username};databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password}
  9. dataSource.hbm2ddl.auto=update
复制代码

以后要改数据库配置信息也只在这个文件修改就可以了。

测试用的流程swing.jpdl.xml
<?xml version="1.0" encoding="UTF-8"?>
<process name="swing" xmlns="http://jbpm.org/4.3/jpdl">
   <start g="94,64,48,48" name="start1">
      <transition g="-52,-22" name="A" to="A"/>
   </start>
   <task assignee="A" g="73,195,92,52" name="A">
      <transition g="-52,-22" name="B" to="B"/>
   </task>
   <task assignee="B" g="266,192,92,52" name="B">
      <transition g="-40,-21" name="end" to="end1"/>
   </task>
   <end g="290,327,48,48" name="end1"/>
</process>


测试代码
public class Main {
    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("resource/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());
        }
        
    }
}


附件是完整的集成文件和测试代码,仅在spring2.5.6测试过,要运行该部分代码,需要添加jbpm4.4和spring的相关依赖库文件参照.classpath时行添加。

 

 

转自:http://bbs.chinaunix.net/thread-1754666-1-1.html

分享到:
评论

相关推荐

    Jbpm4.4 整合Spring Hibernate4

    在Jbpm4.4中整合Spring,可以利用Spring的这些优势,比如将Jbpm的流程实例管理、任务分配等操作集成到Spring容器中,实现流程服务的声明式配置和管理。 **3. Hibernate4整合** Hibernate4是流行的ORM(对象关系映射...

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    《jBPM4.4开发指南》与《jBPM4.4中文用户手册》是深入理解jBPM4.4这一开源工作流管理系统的重要参考资料。jBPM,全称Java Business Process Management,是一个用于执行业务流程的轻量级、灵活的开源框架,它为业务...

    JBPM4.4+spring+ext整合

    【JBPM4.4+Spring+EXT 整合详解】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程自动化。版本4.4是JBPM的一个重要里程碑,它提供了强大的工作流设计、执行和监控能力...

    jbpm4.4spring.rar_jbpm4_jbpm4.4

    【标题】"jbpm4.4spring.rar_jbpm4_jbpm4.4" 提供的是一个关于JBPM4.4与Spring框架整合的实际应用案例。JBPM(Java Business Process Management)是一款开源的工作流管理系统,它允许开发者设计、执行、管理和监控...

    jbpm4.4+spring2.5.6+hibernate 3.6+struts2.2.1 集成 保证运行成功

    这个集成项目是基于特定版本的这些技术,包括jbpm4.4(业务流程管理),spring2.5.6(依赖注入和事务管理),hibernate 3.6(对象关系映射),以及struts2.2.1(MVC框架)。下面将详细介绍这些组件以及它们如何协同...

    jBPM4.4开发实例

    1. **与Spring集成**:jBPM可以与Spring框架无缝集成,提供更好的依赖注入和事务管理。 2. **规则引擎整合**:jBPM集成了Drools规则引擎,允许在流程中嵌入复杂的业务规则。 3. **数据库持久化**:jBPM支持多种...

    jbpm4.4文档+学习资料

    5. 集成能力:jbpm4.4可以与Java EE、Spring、Hibernate等框架无缝集成,便于开发企业级应用。 三、jbpm4.4学习路径 1. 基础概念:首先需要了解BPM的基本概念,如流程实例、任务、事件、信号等。 2. 工具使用:学习...

    jBPM 4.4用户手册 中文PDF

    jBPM 4.4 可以无缝集成到Java EE和Spring环境中,便于与其他企业服务和应用进行交互。它还支持与外部服务(如EJB、JMS、WS)的交互,以及与规则引擎(如Drools)的集成,实现业务逻辑的智能化。 **八、文档资源** ...

    jbpm4.4中文开发指南

    jbpm4.4是该系统的某一版本,它提供了丰富的功能,包括流程定义、流程实例的启动、监控和干预,以及与后端系统如数据库和应用服务器的集成。 1. **流程建模**: jbpm4.4使用BPMN(Business Process Model and ...

    jbpm4.4+ssh

    【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...

    jbpm4.4 shh2 项目示例

    jbpm4.4 shh2 项目示例是基于jbpm4.4版本与SSH2(Struts2、Spring和Hibernate)集成的一个实战项目。jbPM(Business Process Management)是一款开源的工作流管理系统,用于实现业务流程自动化。SSH2是Java开发中的...

    Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合

    【JBPM4.4+Hibernate3.5.4+Spring3.0.4+Struts2.1.8整合】的整个过程涉及到多个关键组件的集成,这些组件都是Java企业级开发中的重要部分。首先,JBPM(Business Process Management)是一个开源的工作流引擎,它...

    jBPM4.4.rar_jbpm4_jbpm4.4

    "jBPM4.4.docx" 文件可能是关于 jbPM 4.4 示例的详细文档,它可能包含如何安装、配置、创建和运行流程实例的步骤,以及可能遇到的问题和解决办法,对于学习和使用 jbPM 4.4 是非常有价值的参考资料。 总结,jbPM ...

    jbpm4.4+tomcat6+eclipse jee

    6. **集成能力**:jbpm4.4可轻松与其他Java EE组件,如EJB、JMS、JPA等集成,也可以与Spring框架无缝配合,实现业务逻辑的灵活部署。 Tomcat6作为服务器,提供了轻量级的Java Web应用托管环境。它可以快速启动和...

    jbpm4.4+s2sh请假流程例子

    【jbpm4.4+s2sh请假流程例子】是一个典型的结合了jbpm4.4工作流引擎和Struts2、Spring、Hibernate(S2SH)框架的实战项目,旨在演示如何在企业级应用中实现一个完整的请假流程。在这个例子中,jbpm4.4作为流程管理的...

    jbpm-4.4.zip part03

    4. **集成能力**:jbpm可与Java EE、Spring等框架无缝集成,也可以与各种企业服务,如EJB、Web服务等进行交互,提供灵活的扩展性。 5. **任务管理**:jbpm提供任务服务,允许用户分配、接收、完成和转移任务,支持...

    jbpm4.4项目

    6. **集成能力**:jbpm4.4可以与Spring框架、EJB等企业级技术结合,实现业务逻辑与流程管理的无缝对接。此外,它还支持JMS、邮件等通信方式,方便与其他系统交互。 7. **测试与调试**:jbpm4.4提供了测试框架,允许...

Global site tag (gtag.js) - Google Analytics