认识JBPM

     我的JBPM
     一、JBPM的环境的搭建:
     集成的工作环境是eclipse,这练习的JBPM的版本是4.4的
     下载关于4.4版本的jar包和安装包;
     在eclipse中进行插件的安装的操作:
     在eclipse中的help的Install new software 选项中进行安装的步骤的操作;
     添加我们的解压之后的文件下的D:\jbpm-4.4\install\src\gpd中的压缩文件jbpm-gpd-site.zip,之后就是基本的安装的操作的模式了;
     进行基本的安装的验证的操作,是在我们自己新建一个项目之后,我们可以在自己的java的项目中进行一个jbpm的文件的建立。
     
     二、基本的认识JBPM
     认识JBPM的:
     一、导包:
     由于是第一次的认识,对于jbpm的基本的jar包认识的还不是很全面,所以我们可以把所以的关于JBPM的jar包导入到我们的项目中去,由于JBPM可以说是一个比较的成熟开源的工作流的框架,其中继承了一些hibernate,数据库的连接,el表达式的操作等等,所以他的jar包是一个比较大的jar库,我们全部导入的jar包:58个以及一个JBPM的核心jar。
     配置文件的加入:
我们可以把D:\jbpm-4.4\examples\src中的xml和propertities的文件导入到我们的java项目中的src下面;
这里需要进行的修改如下在我们的hibernate.cfg.xml中的修改之后的代码是:

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


 <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
 <property name="hibernate.connection.username">root</property>
 <property name="hibernate.connection.password">sa</property>
 <property name="hibernate.hbm2ddl.auto">update</property>
 <property name="hibernate.format_sql">true</property>
 <property name="hibernate.show_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" />



     建立我们的第一个流程图的xml:
建立一个jbpm,命名为fu,我们可以观察到生成的是一个fu.jbpl.xml的文件,其中我们可以类似的进行一个UML的建模的操作,但是和UML还是有很大的区别的。
     建立我们的测试的java类:
     测试代码如下:
package com.fww.test;

import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;

public class Test {

public static void main(String[] args) {

    // 核心的配置的文件的加载的操作
    Configuration conf = new Configuration();
    // 流程的引擎的获取
    ProcessEngine processEngine = conf.buildProcessEngine();

    // 仓库的服务引擎的获取

// RepositoryService repositoryService = processEngine.getRepositoryService();

    // 发布 流程的定义

// repositoryService.createDeployment().addResourceFromClasspath(“jb/fu.jpdl.xml”).deploy();

    //获取实例流程
     ExecutionService executionService =processEngine.getExecutionService();
     //实例的流程的一个开启的操作 依据一个id 是数据库中的deployprop的stringval_字段

// executionService.startProcessInstanceById(“fu-1”);

     //实例的继续的操作 依据的是数据库中的execution的id_字段
     executionService.signalExecutionById("fu.10001");

}

}
     如此一个基本的jbpm的的操作就完成了一个流程的发布的操作,我们可以在我们的数据库中进行基本的数据的查看的操作,其中可以看到关于fu流程图的一些“基本的信息”。
     JBPM的六个service:

在我们使用JBPM的时候,我们可以知道其中是包括有如下的六个servicede:

     

     在我们的eclipse中的一个完整的s2sh和JBPM的结合实例:
web.xml:


<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>


<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>


<filter-name>hibernateSessionFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>


<filter-name>hibernateSessionFilter</filter-name>
<url-pattern>/*</url-pattern>


<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>


<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>


<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
  <param-name>debug</param-name>
  <param-value>true</param-value>
</init-param>


<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>


<welcome-file>index.jsp</welcome-file>



我们的struts和spring的配置:

     

     
     

     
     
     
     
     
     

你可能感兴趣的:(jbpm,工作流引擎)