`
zhyi_12
  • 浏览: 99867 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

提前试用spring 集成 jbpm4

    博客分类:
  • java
阅读更多

在jbpm4的项目中,在下面的网址中看到了简单集成spring 和 jbpm4的集成方法。

http://www.slideshare.net/guest8d4bce/spring-integration-with-jbpm4

 

jbpm4的分支中已经有了集成的代码

http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbpm_svn/jbpm4/branches/ainze/

 

唯一的遗憾就是代码目前还没有和最新的代码同步,于是乎就简单的对这两块代码先做了些合并工作.

数据库:mysql

集成项:spring2.5  hibernate3.3  jbpm4

相关的类:

org.jbpm.pvm.internal.cfg.JbpmConfiguration (其中的buildProcessEngine方法 有些东西没有合并进去,可能会有些问题 ,有兴趣的可以探寻下)

org.jbpm.pvm.internal.cfg.SpringConfiguration(Tom Baeyens在TODO中,这个是ainze写的)

 

org.jbpm.pvm.internal.env.SpringPvmEnvironment(ainze)

 

org.jbpm.pvm.internal.spring.SpringConfigurationFactoryBean(ainze)

 

 

(jbpm.cfg.xml中只需要注释掉hibernate的配置即可)

 

spring 配置--使用了SpringConfigurationFactoryBean(调整自ainze)的方式配置时 这个就是spring集成的最简配置

<!-- jbpm4配置   -->
    <bean id="configuration" class="org.jbpm.spring.cfg.SpringConfigurationFactoryBean">
    	<property name="jbpmConfigurationLocation" value="jbpm.cfg.xml"></property>
    	<property name="sessionFactory" ref="sessionFactory" />
    </bean>

 

测试代码--org.jbpm.spring.test.AbstractTransactionalSpringJbpmTestCase(author Andries Inze)

public class SimpleProcessTest  extends AbstractTransactionalSpringJbpmTestCase{
 
 @Override
 protected String[] getConfigLocations() {
  return new String[]{"classpath:test-context-hibernate.xml"};
 }
 public void test1(){
   deployJpdlXmlString( 
     "<process name='p'>" 
     + " <start>" 
     + "  <transition to='a'/>"
     + " </start>" 
     + " <state name='a'>" 
     + "   <transition to='b'/>"
     + "</state>"
     + " <state name='b'>" 
     + "   <transition to='c'/>"
     + "</state>"
     + " <state name='c'/>" 
      + "</process>");
   
   
   Execution execution = executionService.startProcessInstanceByKey("p");
   execution = executionService.findExecutionById(execution.getId());//.findExecution(execution.getId());
   assertNotNull(execution);
   assertEquals("a", execution.getActivityName());
   
  //a流向b 
   execution = executionService.signalExecutionById(execution.getId());
   assertNotNull(execution);
   assertEquals("b", execution.getActivityName());
   
  //b流向c 
   execution = executionService.signalExecutionById(execution.getId());
   assertNotNull(execution);
   assertEquals("c", execution.getActivityName());
   //再次启动流程
   execution = executionService.startProcessInstanceByKey("p");
  //第三次启动流程
   execution = executionService.startProcessInstanceByKey("p");
   
   assertEquals(3,executionService.createProcessInstanceQuery().list().size());
 }
}

 

  • db.rar (2.2 KB)
  • 描述: 修改后的mysql数据库脚本
  • 下载次数: 378
  • jbpm4-spring.jar (815 KB)
  • 描述: 编译好的合并的代码
  • 下载次数: 865
  • src.rar (2.1 MB)
  • 描述: 合并后的代码
  • 下载次数: 718
  • lib.rar (7.9 MB)
  • 描述: 编译jbpm4-spring依赖的jar包
  • 下载次数: 1515
  • 描述: 实际项目中的lib依赖
  • 大小: 11.7 KB
分享到:
评论
2 楼 timshaw9791 2009-10-01  
我昨天下的jBPM-4.1中,只有SpringConfiguration了。
比较惊讶的是有这么一段:
public Object get(String key) {
    if (applicationContext.containsBean(key)) {
      return applicationContext.getBean(key);
    }

    return super.get(key);
  }
jBPM怎么能让spring卡在前头呢?好得也要让jbpm的ioc容器配置为主啊,
后来想想,可能是因为jBPM的ioc支持延迟创建害的。
1 楼 matthew_chen 2009-06-11  
在运行测试代码的时候报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jbpmConfiguration' defined in class path resource [hn-base.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.jbpm.pvm.internal.cfg.SpringConfiguration]: Constructor threw exception; nested exception is org.jbpm.api.JbpmException:
  error: no element parser for tag repository-service in category descriptor
  error: no element parser for tag repository-cache in category descriptor
  error: no element parser for tag execution-service in category descriptor
  error: no element parser for tag history-service in category descriptor
  error: no element parser for tag management-service in category descriptor
  error: no element parser for tag identity-service in category descriptor
  error: no element parser for tag task-service in category descriptor
  error: no element parser for tag script-manager in category descriptor
  error: no element parser for tag authentication in category descriptor
  error: no element parser for tag id-generator in category descriptor
  error: no element parser for tag types in category descriptor
  error: no element parser for tag address-resolver in category descriptor
  error: no element parser for tag business-calendar in category descriptor
  error: no element parser for tag mail-template in category descriptor
  error: no element parser for tag mail-template in category descriptor
  error: no element parser for tag command-service in category descriptor
  error: no element parser for tag repository-session in category descriptor
  error: no element parser for tag db-session in category descriptor
  error: no element parser for tag message-session in category descriptor
  error: no element parser for tag timer-session in category descriptor
  error: no element parser for tag history-session in category descriptor
  error: no element parser for tag mail-session in category descriptor
  error: no element parser for tag hibernate-session in category descriptor

这是什么原因?

相关推荐

    jbpm4 集成 spring 的试用代码

    将jbpm4集成到Spring中,可以充分利用Spring的管理优势,提高流程服务的可测试性和可配置性。 在“jbpm4 集成 spring”的场景中,我们需要关注以下几个关键知识点: 1. **集成配置**:首先,我们需要在Spring的...

    Spring与JBPM4的集成.docx

    Spring与JBPM4的集成 Spring框架和JBPM4的集成是指将Spring框架与JBPM4业务流程管理系统集成,以便更好地管理业务流程和工作流程。这种集成可以提供更加灵活和高效的业务流程管理解决方案。 知识点1:为什么需要...

    spring与jbpm的集成包(符集成方法)

    Spring 和 JBPM 集成是一项关键的技术任务,它允许开发者在基于 Spring 的应用程序中无缝地集成业务流程管理(BPM)功能。JBPM 是一个开源的 BPM 解决方案,提供工作流服务、流程建模、执行和监控等功能。下面我们将...

    struts+hibernate+spring+jbpm智能工作流系统

    Struts、Hibernate、Spring 和 jBPM 是四个在企业级应用开发中广泛使用的开源框架,它们结合在一起可以构建出高效且灵活的智能工作流系统。下面将分别介绍这些技术及其在工作流系统中的作用。 **Struts** Struts 是...

    将Spring与JBPM集成.txt

    在IT领域,特别是Java开发社区,Spring框架与JBPM(Job Batch Process Model)的集成是一项关键技术,用于构建复杂的企业级应用程序。本文旨在深入探讨如何实现Spring与JBPM的集成,以及这一过程所需的必要组件和...

    jBPM4与Spring整合的2种方式

    1. **引入Spring-JBPM4依赖**:Spring社区提供了Spring-JBPM4模块,可以直接集成到Spring应用中。添加相应的Maven或Gradle依赖。 2. **配置jbpmContext**:创建一个jbpmContext的bean,它会自动配置jBPM4所需的服务...

    jbpm4.3与spring整合

    - `jbpm-4.3/install/src/cfg/jbpm/spring.jbpm.cfg.xml`:JBPM与Spring集成的关键配置文件。 #### 三、配置文件调整 接下来,我们将对这些配置文件进行必要的修改。 1. **调整`hibernate.cfg.xml`**:在`...

    JBPM4与Spring整合例子代码

    4. **事务集成**:由于Spring和JBPM4都管理事务,我们需要配置它们之间的协调。通常,我们设置Spring的PlatformTransactionManager为JtaTransactionManager,使两者共享事务管理。 5. **监听器和事件处理**:JBPM4...

    spring与JBPM整合ppt

    JBPM可以与Java EE或Spring等框架集成,提供可视化的工作流设计、流程监控和执行等功能。 3. **整合原理**:Spring与JBPM的整合主要基于Spring的bean管理和事务管理能力。通过Spring的ApplicationContext,我们可以...

    Spring与JBoss JBPM工作流集成开发指南

    ### Spring与JBoss JBPM工作流集成开发指南 #### 一、引言 随着信息技术的发展,企业越来越依赖于高效的工作流管理系统来优化业务流程。工作流管理系统能够支持或自动化业务过程的一部分或全部,通过计算机化的...

    SSH集成JBPM4.rar

    SSH集成JBPM4是一个关于将Spring、Struts2和Hibernate(SSH)这三大Java Web开发框架与Business Process Management System(BPM,业务流程管理系统)JBPM4整合的项目实例。SSH是Java领域常用的轻量级MVC框架组合,...

    jbpm与spring集成

    【jbpm与Spring集成】是企业级应用中常见的技术整合,旨在利用jbpm(Java Business Process Management)的流程管理能力,结合Spring框架的灵活服务管理,实现高效、可扩展的业务流程自动化。jbpm是一个开源的工作流...

    Spring-Jbpm-JSF-Example.pdf

    标题与描述提到的“Spring-Jbpm-JSF-Example.pdf”是一个示例项目,展示了如何将Spring框架、Jbpm工作流引擎和JSF(JavaServer Faces)技术集成在一起。此项目通过一个简单的应用实例,演示了如何运行基本的工作流程...

    jbpm+spring配置

    文件可能包含了项目的源代码、配置文件、数据库脚本等资源,可以帮助你理解如何将jbpm与Spring集成到实际的OA系统中。通过对这个项目的学习,你可以深入理解jbpm的流程设计、Spring的整合技巧以及如何在企业应用中...

Global site tag (gtag.js) - Google Analytics