`

jbpm开发(2)(转贴)

阅读更多
1           概述
本文主要介绍如何将JBPM+Struts+Spring+Hibernate整合在一块。并通过一个简单实例来说明。此实例为一个申请审批的简单流程,并将申请人和审批人记录到数据库中,流程为start----申请----审批----end,中间无退回,无分支,只是看一下jbpm的流程设计,本文将jbpm和struts/spring/hibernate结合在一块做为一个完整的项目来叙述。
通过processdefinition.xml的可视图,可了解一下流程图:
查看更多精彩图片

2         环境 
tomcat6.0+jdk1.5+eclips3.2
jbpm3.1.4
spring2.0
hibernate3
数据库:postgreSql8.1
jbpm提供了在eclipse下的一个可视化插件,通过它我们可以方便的定义工作流,介绍一下eclipse如何添加该插件?
打开jbpm-starters-kit-3.1.4\jbpm-designer\jbpm-gpd-feature目录,我们可以看到下面有一个eclipse文件夹,这里我们通过link的方式为eclipse添加该插件。
{eclipse_home}/link文件夹下新建jbpm-designer.link文件,用记事本打开该文件加入如下一行:
path=D:\\jbpm-starters-kit-3.1.4\\jbpm-designer\\jbpm-gpd-feature
后面的路径即为该插件的存放路径,根据个人情况修改。注意,这里的分隔符使用双斜杠\\或者用单斜杠/。
3         项目总体结构
src部分
查看更多精彩图片

WebRoot部分:
 
4         要引入的jar包
很多jar包是从jbpm-starters-kit-3.1.4\jbpm-starters-kit-3.1.4\jbpm\build
和jbpm-starters-kit-3.1.4\jbpm-starters-kit-3.1.4\jbpm\lib中得到的
其中spring-modules-jbpm31.jar、postgresql-8.1-405.jdbc2.jar要下载
查看更多精彩图片

以下是myeclips需要引入的包
查看更多精彩图片

5        
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <context-param>
  <param-name>webAppRootKey</param-name>
  <param-value>/jbpm/</param-value>
 </context-param>
 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
 </context-param>
 <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/classes/log4j.properties</param-value>
 </context-param>
 <context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>60000</param-value>
 </context-param>
 <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>com.binghe.pub.SetCharacterEncodingFilter</filter-class>
    <init-param>
           <param-name>encoding</param-name>
           <param-value>GBK</param-value>
       </init-param>
 </filter>
    <filter-mapping>
       <filter-name>Set Character Encoding</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
 <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 </listener>
 <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
 </servlet>
 <servlet>
    <servlet-name>imageServlet</servlet-name>
    <servlet-class>com.binghe.pub.ImageServlet</servlet-class>
 </servlet>
 
 
 <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
    <servlet-name>imageServlet</servlet-name>
    <url-pattern>/servlet/imageServlet</url-pattern>
 </servlet-mapping>
    <welcome-file-list>
    <welcome-file>/apply.jsp</welcome-file>
 </welcome-file-list>
</web-app>
 
6         applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>org.postgresql.Driver</value>
</property>
<property name="url">
<value>jdbc:postgresql://localhost:5432/jbpmtest</value>
</property>
<property name="username">
<value>admin</value>
</property>
<property name="password">
<value>admin</value>
</property>
</bean>
 
    <bean id="sessionFactory"
       class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
       <property name="dataSource">
           <ref bean="dataSource" />
       </property>
       <property name="mappingLocations">
           <value>classpath*:/org/jbpm/**/*.hbm.xml</value>
       </property>
 
       <property name="hibernateProperties">
           <props>
              <prop key="hibernate.dialect">
                  org.hibernate.dialect.PostgreSQLDialect
              </prop>
              <prop key="jdbc.fetch_size">50</prop>
              <prop key="jdbc.batch_size">30</prop>
              <prop key="hibernate.show_sql">true</prop>
              <prop key="hibernate.use_outer_join">true</prop>
              <prop key="hibernate.cglib.use_reflection_optimizer">
                  true
              </prop>
 
           </props>
       </property>
 
    </bean>
    <!-- Transaction Manager -->
    <bean id="transactionManager"
       class="org.springframework.orm.hibernate3.HibernateTransactionManager">
       <property name="sessionFactory">
           <ref local="sessionFactory" />
       </property>
    </bean>
    <!-- Transaction Interceptor -->
    <bean id="transactionInterceptor"
       class="org.springframework.transaction.interceptor.TransactionInterceptor"
       dependency-check="none">
       <property name="transactionManager">
           <ref bean="transactionManager" />
       </property>
       <property name="transactionAttributes">
           <props>
              <prop key="save*">PROPAGATION_REQUIRED</prop>
              <prop key="update*">PROPAGATION_REQUIRED</prop>
              <prop key="attachDirty*">PROPAGATION_REQUIRED</prop>
              <prop key="delete*">PROPAGATION_REQUIRED</prop>
              <!-- default, readOnly -->
              <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
           </props>
       </property>
    </bean>
 
 
 
 
 
 
    <!-- reading jBPM process definitions -->
    <bean id="websaleWorkflow1"
       class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
       <property name="definitionLocation"
           value="classpath:/com/jpdl/simple/processdefinition.xml" />
    </bean>
    <!-- jBPM configuration-->
    <bean id="jbpmConfiguration"
       class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
       <property name="sessionFactory" ref="sessionFactory" />
       <property name="configuration" value="classpath:/jbpm.cfg.xml" />
       <property name="processDefinitions">
           <list
分享到:
评论

相关推荐

    jbpm开发环境搭建

    ### jbpm开发环境搭建知识点详解 #### 一、概述 JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,广泛应用于企业级应用的流程控制与管理。本文将详细介绍基于JBPM 4.4版本在Eclipse开发环境...

    jbpm jar(JBPM开发包)

    jbpm jar(JBPM开发包) jbpm jar(JBPM开发包) 欢迎大家下载。。。

    jbpm开发入门指南

    2. **jbpm环境部署** - **安装JDK**:jbpm需要Java环境支持,确保安装JDK并配置好JAVA_HOME环境变量。 - **下载jbpm**:从官方网站或GitHub获取最新版本的jbpm,解压到本地目录。 - **设置数据库**:jbpm使用持久...

    JBPM开发指南JBPM开发指南

    JBPM开发指南JBPM开发指南JBPM开发指南

    jbpm开发实例详解

    【jbpm开发实例详解】 jbpm是一个开源的工作流管理系统,由JBoss组织开发,遵循LGPL许可证。它提供了丰富的功能,包括对流程的建模、执行和监控。自4.0版本开始,jbpm引入了Process Virtual Machine (PVM)的概念,...

    jbpm4.2 doc(JBPM开发文档)

    【JBPM 4.2 开发文档概述】 JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的业务流程自动化解决方案。JBPM 4.2 是其在2009年发布的一个版本,包含了丰富的功能,如工作...

    jbpm开发步骤

    2. **安装jBPM**: - 下载jBPM的最新版本,通常可以从SourceForge的项目页面获取。 - 创建一个MySQL数据库,名为jbpmdb3,用于存储jBPM的相关数据。 3. **数据库准备**: - 使用jBPM提供的`build.xml`文件生成...

    JBPM开发指南.pdf

    **JBPM开发指南** JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理(BPM)系统,它提供了一套完整的工具链,用于设计、执行、管理和监控业务流程。本指南旨在帮助开发者深入了解JBPM,...

    jbpm开发工具2

    【jbpm开发工具2】是针对企业流程管理(Business Process Management, BPM)的开源框架jbpm的开发套件。jbpm是一个强大且灵活的工作流管理系统,它提供了完整的BPM生命周期支持,包括流程设计、部署、执行、监控和...

    JBPM采购申请系统——16_JBPM开发报销系统(三).7z

    JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请系统——16_JBPM开发报销系统(三).7z JBPM采购申请...

    JBPM采购申请系统——15_JBPM开发报销系统(二).7z

    JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请...

    JBPM采购申请系统——14_JBPM开发报销系统(一).7z

    JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请系统——14_JBPM开发报销系统(一).7z JBPM采购申请...

    jbpm开发指南 jbpm 工作流 自定义

    jbpm开发指南 jbpm开发指南 jbpm 工作流 自定义

    JBPM3.2开发基本流程

    2. JBPM3开发步骤: * 用流程设计器定义流程规则:(processDefinition.xml文件) * 部署流程定义:部署流程用context.deployProcessDefinition(processDefinition);即可进行流程定义的部署,流程定义部署之后...

    jbpm开发入门指南的例子

    【jbpm开发入门指南例子】 jbpm,全称是Java Business Process Management,是一个开源的工作流管理系统,用于构建业务流程应用。它提供了强大的流程定义、执行、监控和管理能力,广泛应用于企业的业务流程自动化中...

    工作流JBPM开发计划书

    ### 工作流JBPM开发计划书 #### 一、项目背景与目标 在当前数字化转型的大背景下,企业越来越依赖于高效的工作流程管理来提升业务效率和服务质量。JBPM(JBoss流程管理)作为一款开源的工作流引擎,因其灵活性、可...

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...

    jBPM4.3中文开发手册

    **jbPM4.3中文开发手册** jbPM(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、执行和监控。jbPM4.3是该系统的早期版本,但仍然包含了丰富的功能和工具,为企业级业务流程...

Global site tag (gtag.js) - Google Analytics