`
chengzhi
  • 浏览: 112297 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

jbpm4学习入门--环境布署

阅读更多

1、下载, jboss.org下的jbpm4,ecplise 3.5, mysql 5

2、安装jbpm4的数据库

     在mysql上建一个学习用的db

    在jbpm4里找到  jbpm-4.0\db\schema.scripts\jbpm.mysql.create.sql

  执行,生成jbpm4需要的数据库表。

3、在ecplise里建一个学习项目(java),并把 jbpm4\lib里所有的jar以及jbpm.jar加入编译环境

   从 jbpm4的example的目录下的xml得到到本项目的src目录下,

   主要是要用 jbpm.cfg.xml、jbpm.hibernate.cfg.xml

   把jbpm.hibernate.cfg.xml 的数据库连接设置改改如下,使能连上mysql。

    <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">usr</property>
    <property name="hibernate.connection.password">pwd</property>

4、写一个java类 HelloJBPM4

package ex;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.api.Configuration;
import org.jbpm.api.Execution;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.IdentityService;
import org.jbpm.api.ManagementService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;

public class HelloJBPM4 {
 
 protected final Log log = LogFactory.getLog(getClass());
   protected static ProcessEngine processEngine = null;

   protected static RepositoryService repositoryService;
   protected static ExecutionService executionService;
   protected static ManagementService managementService;
   protected static TaskService taskService;
   protected static HistoryService historyService;
   protected static IdentityService identityService;
  
   protected synchronized void initialize() {
      if (processEngine==null) {

        String jbpmTestCfgType = System.getProperty("jbpm.test.cfg.type");
        log.debug(jbpmTestCfgType);
        Configuration configuration = new Configuration(jbpmTestCfgType);

        String jbpmTestCfgResource = System.getProperty("jbpm.test.cfg.resource");
        log.debug("jbpmTestCfgResource-->"+jbpmTestCfgResource);
        if (jbpmTestCfgResource!=null) {
          configuration.setResource(jbpmTestCfgResource);
        }

        processEngine = configuration.buildProcessEngine();
       
        log.debug("using ProcessEngine "+System.identityHashCode(processEngine));

        repositoryService = processEngine.get(RepositoryService.class);
        executionService = processEngine.getExecutionService();
        historyService = processEngine.getHistoryService();
        managementService = processEngine.getManagementService();
        taskService = processEngine.getTaskService();
        identityService = processEngine.getIdentityService();
      }
   }
   private void doJob(){
    initialize();
    String deploymentId;
    deploymentId = repositoryService.createDeployment()
         .addResourceFromClasspath("ex/HelloJBPM4.jpdl.xml")
         .deploy();
    ProcessInstance processInstance = executionService.startProcessInstanceByKey("Custom");
      Execution executionInPrintDots = processInstance.findActiveExecutionIn("print dots");
      String executionId = executionInPrintDots.getId();
      executionService.signalExecutionById(executionId);
    repositoryService.deleteDeploymentCascade(deploymentId);
   }
  public static void main(String arg[]){
   HelloJBPM4 ex=new HelloJBPM4();
   ex.doJob();
  
  }
}

代码是从JbpmTestCase.java、org.jbpm.examples.custom中复制过来的

略改了一改,就是一个jbpm4的helloworld了。

注意:org.jbpm.examples.custom下的xml改名为HelloJBPM4.jpdl.xml

     类路径也改为ex

5、执行这个类(java application)

成功的话,在ecplise的console里打印一个美女的点图。

HelloJBPM4.jpdl.xml 里调用了PrintDots.java

这个也是从org.jbpm.examples.custom复制过来的

HelloJBPM4.jpdl.xml

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

<process name="Custom" xmlns="http://jbpm.org/4.0/jpdl">

  <start g="20,20,48,48">
    <transition to="print dots" />
  </start>

  <custom name="print dots"
        class="ex.PrintDots"
        g="96,16,100,52">
       
    <transition to="end" />
  </custom>
 
  <end name="end" g="231,19,80,40"/>

</process>

6、总结

  用ecplise画工作流图,生成jpdl.xml

  自己写个java类把jpdl.xml导入数据库。

  deploymentId = repositoryService.createDeployment()
         .addResourceFromClasspath("ex/HelloJBPM4.jpdl.xml")
         .deploy();
 

  下面代码把流程从数据库中取出,并执行

  ProcessInstance processInstance = executionService.startProcessInstanceByKey("Custom");
      Execution executionInPrintDots = processInstance.findActiveExecutionIn("print dots");
      String executionId = executionInPrintDots.getId();
      executionService.signalExecutionById(executionId);

分享到:
评论

相关推荐

    jbpm的入门1--简单实例

    【jbpm的入门1--简单实例】 jbpm(Java Business Process Management)是一个开源的工作流管理系统,它提供了完整的业务流程管理解决方案,包括流程设计、执行、监控和优化。本实例将带你初探jbpm的世界,通过一个...

    jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)

    jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载

    jbpm5.2学习1------安装与配置

    4. **jbpm-db-scripts**: 数据库脚本,用于创建jbpm所需的数据表。 5. **jbpm-examples**: 示例项目,用于学习和测试jbpm的功能。 **安装步骤**: 1. **设置环境变量**:确保JDK已安装并设置好`JAVA_HOME`环境变量...

    jbpm3 入门项目-环境搭建(1)

    【jbpm3 入门项目-环境搭建(1)】是一个关于学习和设置jbpm3工作流引擎的初始项目的教程。jbpm3是Java Business Process Management的第三版,它允许开发者设计、执行和管理业务流程。这篇博客文章,虽然链接不可在...

    jbpm-jpdl-suite-3.2.3安装配置.doc

    4. **jbpm-jpdl-suite-3.2.3部署**: - 在MySQL中执行修改后的jbpm.jpdl.mysql.sql脚本,初始化jbpm所需的表结构。 - 配置jbpm的数据库连接信息,通常是在jbpm的配置文件中(如jbpm-config.xml或相关的JNDI配置)...

    jBPM4-app-forth4 源码实例 jbpm4

    jBPM4-app-forth4 是一个基于jBPM4框架的应用程序实例,它提供了深入理解jBPM4工作流引擎及其应用开发的宝贵资源。jBPM4是一款开源的业务流程管理(Business Process Management)和工作流系统,主要用于设计、执行...

    jbpm-jpdl-suite-3.2.3的安装配置

    4. **jbpm-console.war**:这是一个基于JSF的Web控制台,用于监控jPDL平台的运行情况,包括数据库监控、流程定义管理和流程实例执行。此外,它还包含一个入门演示,帮助新手快速熟悉jPDL。 **jbpm-jpdl-suite-3.2.3...

    jbpm-starters-kit-3.1.2.part2.rar

    jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,共两卷

    jbpm-jpdl-designer-site-3.1.7.zip

    jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip

    jBPM4_app-first 视频 源码

    通过深入学习 jBPM4_app-first 示例,开发者可以掌握如何在实际项目中应用 jBPM4 实现业务流程自动化,提高工作效率并降低出错率。此外,源码分析有助于加深对 jBPM4 内部机制的理解,为自定义扩展或解决特定问题...

    JBPM-----PPT

    - **jbpm-console-ng**:新一代的Web管理界面,提供更丰富的功能和更好的用户体验。 - **API与服务**:讲解如何通过RESTful API和JMS消息服务与JBPM交互。 - **集成工具**:包括Maven插件、Eclipse插件等,便于...

    jbpm-jpdl-suite-3.2.3.zip

    jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....

    jbpm-4.3-src.rar_bdf-jbpm4 src _jboss 4.3_jboss jbpm4.3_jbpm-4.3

    jbpm-4.3-src.rar_bdf-jbpm4 src _jboss 4.3_jboss jbpm4.3_jbpm-4.3 这个压缩包文件包含的是JBOSS jBPM4.3的源代码,这是一个用于业务流程管理(BPM)的开源框架。jBPM是一个强大的工具,它提供了流程定义、执行和...

    jbpm-jpdl-suite-3.2.GA.zip-6

    jbpm-jpdl-suite-3.2.GA.zip

    jbpm-workitems-5.1.0.Final-sources.jar

    jbpm-workitems-5.1.0.Final-sources.jar jbpm5 源码

    jbpm-bpmn2-5.1.0.Final.jar

    jbpm-bpmn2-5.1.0.Final.jar jbpm5

    jbpm的入门2--流程设计器的安装

    **jbpm入门第二步——流程设计器的安装** ...这只是一个基本的入门教程,jbpm的强大功能还包括工作流自动化、规则引擎、事件处理等,深入学习和实践将使你能够构建出更加复杂和智能的业务流程系统。

    jbpm5环境配置-myeclipse

    jbpm5环境配置-myeclipsev

    jbpm-jpdl-designer-nodeps-3.1.4

    综上所述,"jbpm-jpdl-designer-nodeps-3.1.4"提供了独立于特定依赖环境的Jbpm流程设计器,便于开发者通过JPDL来定义和管理业务流程。它包含的文档和资源有助于用户安装、理解和使用该工具,同时遵守相应的开源许可...

Global site tag (gtag.js) - Google Analytics