`

JBPM 和 Spring 的结合

    博客分类:
  • jbpm
阅读更多
JBPM 和 Spring 的结合
2008-10-11 21:34

第一步:将JBPM的配置写入HIbernate,生成相应的表
     * 拷贝相关的依赖包到WEB-INF/lib下面(bsh.jar/ jcr-1.0.jar/ jbpm-identity.jar/ jbpm-jpdl.jar)
   * 修改hibernate.cfg.xml,添加JBPM的映射配置,以及缓存属性的配置

 

        <property name="mappingLocations">
            <value>classpath*:/org/jbpm/**/*.hbm.xml</value>
        </property>

 

第二步:与Spring集成
   * 集成JBPM与spring,需要用到第三方的集成包:spring-modules-0.8.zip
   * 将其中的spring-modules-jbpm31.jar拷贝到WEB-INF/lib下面即可
   * 集成JBPM与Spring的方法是:将JbpmConfiguration对象的创建交给Spring来完成
   * 所以,需要在spring配置文件中配置JbpmConfiguration对象的创建
    <!-- 配置JbmpConfiguration -->
    <bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
     <property name="configuration" value="classpath:jbpm.cfg.xml"></property>
    </bean>
   * 这时候,需要jbpm.cfg.xml,这是JBPM的配置文件,我们可以从:
    JBPM_HOME\src\jpdl\org\jbpm目录下拷贝default.jbpm.cfg.xml文件,
    并重新命名为jbpm.cfg.xml


第三步:如何实现业务逻辑类

   * 用到jbpmConfiguration对象的时候,需要注入 (<property name="jbpmConfiguration" ref="jbpmConfiguration"></property>)
   * 当我们使用JbpmContext对象来操纵JBPM的时候,需要将JbpmContext的HibernateSession对象设置为当前的HibernateSession对象
   private JbpmContext getContext(){
     JbpmContext context = jbpmConfiguration.createJbpmContext();
     context.setSession(getSession());
     return context;
    }

 

    <!-- JBPM Hibernate SessionFactory -->
    <bean id="jbpmSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>

        <property name="mappingLocations">
        	<value>classpath*:/org/jbpm/**/*.hbm.xml</value>
        </property>
    </bean>

    <bean id="jbpmConfiguration"
    	class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
    	<property name="configuration" value="classpath:jbpm.cfg.xml"></property>
    	<property name="sessionFactory" ref="jbpmSessionFactory" />
    	<property name="processDefinitions">
    		<list>
    			<ref local="qingjia" />
    		</list>
    	</property>
    	<property name="createSchema" value="false" />
    	
    </bean>

    <bean id="qingjia" class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
        <property name="definitionLocation" value="file:${oa_application.config}/qingjia/processdefinition.xml"/>
    </bean>

 

 

附:

        	<!-- jbpm 3.2.6 -->
        <property name="mappingLocations">
        	<value>classpath*:/org/jbpm/**/*.hbm.xml</value>
        </property>
        <property name="typeDefinitions">
        	<ref bean="jbpmTypes" />
        </property>


    <bean id="jbpmTypes"
    	class="org.springframework.orm.hibernate3.TypeDefinitionBean">
    	<property name="typeName" value="string_max" />
    	<property name="typeClass"
    		value="org.jbpm.db.hibernate.StringMax" />
    </bean>

 

<!-- jbpm 3.2.6.sp1 -->
    <import resource="file:${oa_application.config}/cn/firstsoft/firstframe/plugins/jbpm/applicationContext-jbpm.xml"/>

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
	<!-- JBPM 3.2.6.SP1 -->
	<bean id="jbpmConfiguration"
		class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
		<property name="sessionFactory" ref="sessionFactory" />
		<property name="configuration"
			value="file:${oa_application.config}/conf/jbpm.cfg.xml" />
		<!--
		<property name="createSchema" value="false"/>
		-->
		<!-- unused, it can be deploy false, deploy success, then set it -->
		<!--
			<property name="processDefinitions"> <list> <ref
			local="testProcess"/> </list> </property>
		-->
	</bean>
	<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
		<property name="jbpmConfiguration" ref="jbpmConfiguration" />
	</bean>

	<!-- 动态分配任务的处理,利用node-enter事件 
	<bean id="jbpmProcessDao" class="cn.firstsoft.firstframe.plugins.jbpm.JbpmProcessDao">
		<property name="template" ref="jbpmTemplate" />
	</bean>

	<bean id="nodeEnterActionHandler" parent="baseTxService">
		<property name="target">
			<bean
				class="cn.firstsoft.modules.workflow.service.handler.NodeEnterActionHandler" />
		</property>
	</bean>
	<bean id="endNodeEnterActionHandler" parent="baseTxService">
		<property name="target">
			<bean
				class="cn.firstsoft.modules.workflow.service.handler.EndNodeEnterActionHandler" />
		</property>
	</bean>
	<bean id="taskEndCountersignActionHandler" parent="baseTxService">
		<property name="target">
			<bean
				class="cn.firstsoft.modules.workflow.service.handler.TaskEndCountersignActionHandler" />
		</property>
	</bean>	
	-->
</beans>

 

分享到:
评论
1 楼 huangsky 2012-03-05  
${oa_application.config}
这个是系统的吗?在哪里配置的

相关推荐

    JBPM4.3 Spring会签 实例

    当将JBPM与Spring结合时,可以充分利用Spring的特性来管理JBPM的工作流实例,提高系统的可维护性和可扩展性。 在这个实例中,我们将探讨如何在JBPM4.3中实现基于Spring的会签功能。会签是一种常见的业务流程操作,...

    jbpm+spring配置

    【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发框架Spring相结合的实践。jbpm是一个开源的BPM解决方案,它提供了流程定义、执行、监控和管理的一整套工具。而...

    jbpm5.4 spring mvc 集成

    jbpm5.4与Spring MVC的集成是企业级应用开发中的常见组合,它结合了jbpm(业务流程管理)的强大功能和Spring MVC的灵活控制层架构。以下将详细阐述这一集成涉及的关键知识点: 1. **jbpm5.4**:jbpm是一个开源的...

    jbpm4.3与spring整合

    在企业级应用开发中,流程管理引擎JBPM(JBoss Business Process Management)与Spring框架的结合使用是常见的一种技术方案。JBPM是一个灵活、强大的业务流程管理工具,而Spring框架则以其优秀的依赖注入(DI)和...

    jbpm+spring的web简单借款工作流实例项目

    当jbPM与Spring结合时,可以实现业务流程与应用服务的无缝集成,提供强大的工作流支持。 本项目是基于jbPM和Spring构建的一个简单的Web借款工作流实例,旨在帮助开发者理解如何在实际项目中运用这两项技术。数据库...

    jbpm与spring集成

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

    JBPM5 Spring 例子

    将JBPM5与Spring结合,可以充分利用Spring的优秀特性,提高JBPM5应用的开发效率和可维护性。 首先,我们来看一下如何在Spring中配置JBPM5。在`JBPM5Spring`项目中,通常会有一个`spring-context.xml`配置文件,这里...

    JBPM与Spring集成开发指南

    6. **安全控制**:结合Spring Security或自定义权限管理,控制用户对工作流的访问和操作权限。 在实际开发中,可能会遇到的问题包括版本兼容性、事务同步、异常处理、性能优化等。解决这些问题通常需要深入理解JBPM...

    JBPM与Spring集成开发指南.docx

    - **集成意义**:结合JBPM的工作流引擎能力和Spring的灵活性,构建高效、可维护的业务流程管理系统。 - **集成要点**:包括Spring的依赖注入来管理JBPM组件,使用Spring的AOP支持工作流的事务管理,以及利用Spring...

    JBPM3.2与Spring结合时任务调度的实现.doc

    总结起来,JBPM3.2与Spring的结合主要涉及到以下几个关键点: 1. 使用`spring-modules-jbpm31.jar`进行集成。 2. 在`web.xml`中配置`JobExecutorServlet`。 3. 将任务调度的相关配置移到`jbpm.cfg.xml`。 4. 调整`...

    jbpm4 集成 spring 的试用代码

    10. **国际化与本地化**:Spring提供了丰富的国际化支持,可以结合jbpm4的流程定义,实现多语言的流程任务名称和提示信息。 总的来说,jbpm4与Spring的集成可以提高流程管理的灵活性和可扩展性,使得开发者能够更好...

    jbpm + spring + struts 项目

    这个项目是一个整合了jbpm(Java Business Process Management)、Spring框架和Struts框架的典型企业级应用。jbpm是用于业务流程管理的开源工具,Spring则提供了全面的后端服务管理,而Struts则是前端MVC(Model-...

    JBPM与Spring集成开发指导书.docx

    【JBPM与Spring集成开发】是企业信息化管理中的一项关键技术,它涉及到工作流管理系统与Spring框架的结合,以实现高效、灵活的业务流程自动化。JBPM是一个知名的开源工作流引擎,它允许开发者定义、执行和管理工作...

    Jbpm4.4 整合Spring Hibernate4

    Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了整合,实现了更加灵活和高效的企业级应用...

    JBPM使用实例,sql spring

    通过上述文件,你可以学习到如何将JBPM、Spring和SQL结合,实现一个完整的业务流程管理系统。首先,你需要了解Spring环境下的配置,包括Spring与JBPM的集成方式。然后,你需要熟悉JBPM的流程定义语言和工具,创建...

    jbpm4.3-spring2.5整合

    总的来说,jbpm4.3-spring2.5整合是一项复杂但重要的任务,它将灵活的工作流管理与强大的应用框架结合在一起,为开发者提供了构建高效、可扩展的企业级应用的工具。在实践中,需要对Jbpm的工作原理、Spring的IoC和...

    JBPM5 整合Spring3经典案例

    - **事务管理**:Spring的事务管理器可以与JBPM的事务管理相结合,确保流程操作的原子性和一致性。 - **AOP集成**:Spring的AOP可以在流程执行的关键点添加拦截器,实现日志记录、权限检查等功能。 - **Bean管理**:...

    JBPM4与Spring整合例子代码

    将JBPM4与Spring进行整合,可以充分利用Spring的灵活性和JBPM4的流程管理能力,构建高效且可扩展的OA(Office Automation)工作流系统。 在"风中叶老师讲的JBPM4与Spring整合例子代码"中,我们可以了解到如何将这两...

    ssh三大框架和jbpm工作流结合

    通过这种结合,开发者可以构建出具有强大流程控制能力的企业级应用,既能利用SSH的灵活性和效率,又能享受到jbPM带来的业务流程自动化优势。这种集成方案在实际的项目开发中有着广泛的应用,特别是在金融、政务、...

    jBPM4与Spring整合的2种方式

    2. **配置jbpmContext**:创建一个jbpmContext的bean,它会自动配置jBPM4所需的服务,并与Spring的bean管理相结合。 3. **使用JBPM4Template**:Spring-JBPM4提供了JBPM4Template类,它可以简化与jBPM4的交互,如...

Global site tag (gtag.js) - Google Analytics