`

jBPM4.4:配置(包括和Spring的整合,和Hibernate配置)

    博客分类:
  • jbpm
阅读更多
jBPM4.4,获取ProcessEngine是通过Configuration.getProcessEngine()中获取的。



Configuration.getProcessEngine()的代码如下: 
  /** get the singleton ProcessEngine that is created from the default 
   * configuration file 'jbpm.cfg.xml'. */ 
  public static ProcessEngine getProcessEngine() { 
    if (singleton == null) { 
      synchronized (Configuration.class) { 
        if (singleton == null) { 
          singleton = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine(); 
        } 
      } 
    } 
    return Configuration.singleton; 
  }


(虽然这一段代码可能会有“双重检查锁定”失败的问题,但是不影响到分析jBPM的配置 -- 详见IBM04年的文章:双重检查锁定及单例模式)



系统缺省的加载jbpm.cfg.xml,作为主配置文件。



在jBPM4.4的install/src/cfg中,带了几套配置文件的样板。

在cfg中:有几个目录:

hibernate:采用hibernate时候的配置(其中还分为好几种方式的数据源方式:datasource/jdbc/spring/tomcat)

jbpm      :主配置文件的样板(分为:采用jta/spring/standalone--这种方式直接配置hibernate)

logging   : logging的几种配置法

mail       : 邮件的配置样板

spring    : 如果使用到spring的时候,applicationcontext.xml的样板



在jbpm目录中,拿一个样板来讲:spring.jbpm.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

<jbpm-configuration>

  <import resource="jbpm.default.cfg.xml" />
  <import resource="jbpm.tx.spring.cfg.xml" />
  <import resource="jbpm.jpdl.cfg.xml" />
  <import resource="jbpm.bpmn.cfg.xml" />
  <import resource="jbpm.identity.cfg.xml" />
  <import resource="jbpm.businesscalendar.cfg.xml" />
  <import resource="jbpm.console.cfg.xml" />
  <import resource="jbpm.jobexecutor.cfg.xml" />
  
  <process-engine-context>
    <string name="spring.cfg" value="applicationContext.xml" />
  </process-engine-context>

</jbpm-configuration>

对于3种不同的配置,就是在第二个配置项上有差异,其余部分都是一样的。

spring:      <import resource="jbpm.tx.spring.cfg.xml" />

jta     :      <import resource="jbpm.tx.jta.cfg.xml" />

standalone: <import resource="jbpm.tx.hibernate.cfg.xml" />



这几个文件都在{jBPM4.4}的src目录中。

现在要做的和spring结合起来,因此在自己项目中,采用第一个配置:



其实这3个文件的差别也是不大,主要在于配置transaction-context上,而且如果采用spring的话,hibernate的配置进了spring的配置文件,因此在jbpm.tx.spring.cfg中,不需要有hibernate的配置,而另外2种方式,都要声明hibernate配置采用哪个文件。



样例的applicationcontext.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-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/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

  <bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />

  <bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />

  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" />
    <property name="dataSource" ref="dataSource" />
  </bean>

  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    <property name="dataSource" ref="dataSource" />
  </bean>

  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="@jdbc.driver@" />
    <property name="url" value="@jdbc.url@" />
    <property name="username" value="@jdbc.username@" />
    <property name="password" value="@jdbc.password@" />
  </bean>

</beans>

数据库的配置在spring配置文件中,单独的有一段:

 
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" />
    <property name="dataSource" ref="dataSource" />
  </bean>
而且数据源配置在spring的配置文件中,因此在hibernate的配置文件中,就不需要配置数据源了。

hibernate的配置文件:在{JBPM4.4}/install/src/cfg/hibernate/spring中:

以oracle的配置文件为例:


<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    <property name="hibernate.format_sql">true</property>

    <mapping resource="jbpm.repository.hbm.xml" />
    <mapping resource="jbpm.execution.hbm.xml" />
    <mapping resource="jbpm.history.hbm.xml" />
    <mapping resource="jbpm.task.hbm.xml" />
    <mapping resource="jbpm.identity.hbm.xml" />
  </session-factory>
</hibernate-configuration>
在hibernate的配置文件中,见不到数据库的连接配置信息了,这样数据库连接可以在spring中统一配置,避免了在一个系统中,多处配置数据库连接的情况。



这样完成了jBPM4.4和spring的结合。(好像自己没做什么,就是看了一下jBPM提供的各种不同方式的组合。)

分享到:
评论

相关推荐

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

    总结来说,JBPM4.4+Hibernate3.5.4+Spring3.0.4+Struts2.1.8的整合是一项涉及多个层面的工作,需要对每个组件有深入的理解,并能熟练配置和使用。通过这个整合,开发者能够构建出强大的业务流程管理系统,同时利用...

    JBPM4.4+spring+ext整合

    通过JBPM4.4、Spring和EXT的整合,可以构建出一个功能完善、易用性强的流程管理系统,不仅能够有效地管理业务流程,还能提供直观的用户界面,提升用户体验。这种整合方式在现代企业级应用中具有很高的实用价值。

    Jbpm4.4 整合Spring Hibernate4

    **Jbpm4.4整合Spring Hibernate4详解** Jbpm4.4是一个流程管理系统,它结合了业务流程管理(BPM)和工作流服务,提供了强大的流程定义、执行和监控能力。在这个版本中,Jbpm与Spring框架和Hibernate ORM工具进行了...

    jbpm4.4+ssh配置

    配置jbpm4.4与SSH,主要是将jbpm的流程管理功能与Spring的依赖注入、AOP、事务管理,Struts2的MVC框架,以及Hibernate的数据访问整合在一起,以实现更强大的企业级应用。这包括配置SSH框架,将jbpm的相关服务注册为...

    jbpm4.4文档+学习资料

    jbpm4.4版本在前一代的基础上进行了诸多改进和增强,包括更强大的工作流引擎、优化的性能以及对Java EE和Spring框架更好的支持。 二、jbpm4.4的主要特性 1. 工作流引擎:jbpm4.4的核心是其工作流引擎,它负责执行...

    jbpm4.4 ssh 整合

    SSH和JBPM是两个在Java开发领域中广泛使用的框架,SSH代表Spring、Struts和Hibernate,而JBPM则是一个流程管理平台。这篇文章将详细介绍如何整合SSH与JBPM 4.4,以及它们整合后能带来的优势。 首先,让我们了解SSH...

    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与ssh2的项目整合所需jar包

    **jbpm4.4与SSH2的项目整合详解** jbpm4.4是JBoss公司提供的一个开源工作流管理系统,它允许开发者在Java应用程序中轻松地...提供的"jbpm4.4+ssh2jar包"包含了整合所需的jar文件,可以帮助开发者快速搭建和测试环境。

    Spring+hibernate4+SpringMVC+Jbpm4.4

    这个项目将Spring、Hibernate 4 和 Jbpm 4.4 整合在一起,构建了一个强大的企业级应用平台。SpringMVC处理HTTP请求,控制业务逻辑;Hibernate负责数据持久化,处理与MySQL的交互;Jbpm则用于流程管理和执行。这样的...

    jbpm4.4 shh2 项目示例

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

    jBPM 4.4用户手册 中文PDF

    jBPM 4.4 使用Hibernate作为默认的持久化层,可以轻松地将流程实例和相关数据存储到数据库中。这使得流程实例能够在系统重启后继续,同时也支持数据的查询和审计。 **六、监控与管理** jBPM 4.4 提供了一个Web管理...

    jBPM4.4+ssh 整合配置及完整实例

    **jBPM4.4与SSH整合配置及完整实例详解** jBPM(Java Business Process Management)是一款开源的工作流管理系统,主要用于处理业务流程自动化。在本实例中,我们将讨论如何将jBPM 4.4版本与SSH(Spring、Struts、...

    jbpm4.4+ssh

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

    jbpm4.4+s2sh请假流程例子

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

    jbpm4.4整合spring2.5(ibatis与hibernate全整合)

    jbpm4.4整合spring2.5(ibatis与hibernate全整合)

    jbpm4.4项目

    4. **持久化存储**:jbpm4.4使用Hibernate进行数据持久化,保存流程实例、任务和变量等信息。这使得流程状态可以在系统重启后恢复,也支持多用户并发操作。 5. **监听器与事件**:通过监听器,可以实现对流程中的...

    jbpm4.4整合ssh代码

    1. **Spring集成**: 集成jbpm4.4到Spring中,可以利用Spring的依赖注入和事务管理,使流程服务的调用更加灵活和可控。 2. **Struts配置**: 在Struts中添加jbpm的控制器,以便通过HTTP请求触发流程的开始、结束或...

    jBPM4.4整合SSH2

    需要注意的是,由于 Hibernate 和 Spring 的整合,`hibernate.cfg.xml` 文件中的许多配置转移到了 Spring 配置文件中,但仍可以保留部分 Hibernate 相关的配置,如日志显示、自动建表策略和方言设置。 **相关 jar ...

Global site tag (gtag.js) - Google Analytics