`
JavaCrazyer
  • 浏览: 3009117 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

JBPM4.4之HelloWorld示例

阅读更多

一般来说都是按照这样几个步骤来做的

1.新建项目
2.src下新建JBPM4 Process Definition命名为hello,会生成hello.jpdl.xml的文件
3.添加依赖库【eclipse或者MyEclipse中右键build path-->add External Archives然后添加jbpm.jar和lib下的所有jar】
4.添加JPBM必须配置文件,进入D:\jbpm-4.4\examples\src 将该目录下所有配置文件拷贝到项目src下



  

至此,环境已经配置完毕,下面就是在hello.jpdl.xml进行设计了,具体内容如下

 

<?xml version="1.0" encoding="UTF-8"?>
<process name="helloworld" xmlns="http://jbpm.org/4.4/jpdl">
   <start g="230,25,114,64" name="start1">
      <transition g="-59,-17" name="to state1" to="中国"/>
   </start>
   <end g="168,333,80,51" name="end1"/>
   <state g="206,194,62,63" name="中国">
      <transition g="-47,-17" name="to end1" to="end1"/>
   </state>
</process>

上面的文件保存之后会自动在SRC下面生成一张一样效果的图片

 

 

 

 下面就要在利用JUNIT来进行第一个示例的各项测试喽

 测试之前,首先说下流程定义和流程实例两个概念,当然是现有流程定义,后可以发起新流程了,好好理解下他们的区别

 下面先上关于流程定义的测试类

 

package com.test;

import java.util.List;

import junit.framework.TestCase;

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

public class HelloTest extends TestCase {
	
	//----发布流程定义
	//第一步:启动流程引擎
	ProcessEngine engine;
	public HelloTest(){
		engine=Configuration.getProcessEngine();
	}
	//测试发布
	public void testDeploy(){
		//获取流程服务
		RepositoryService service=engine.getRepositoryService();
		//把流程定义发布到流程引擎中
		String developementId=service.createDeployment()
		                      .addResourceFromClasspath("helloworld.jpdl.xml").deploy();
		
		
		//----查看流程定义
		//发布流程定义信息,查看已发布流程定义列表
		List<ProcessDefinition> definitions=service.createProcessDefinitionQuery().list();//执行搜索
		for (ProcessDefinition processDefinition : definitions) {
			System.out.println(processDefinition.getId());
		}
		
		//----删除流程定义,这里用级联删除会比较好
		service.deleteDeploymentCascade(developementId);
		
		//查看输出后流程定义的个数
		System.out.println(service.createProcessDefinitionQuery().list().size());
		
	}

}

 

然后就是流程实例测试

 

package com.test;

import java.util.List;

import junit.framework.TestCase;

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

public class ProcessInstanceTest extends TestCase {
	//----发布流程定义
	//第一步:启动流程引擎
	ProcessEngine engine;
	public ProcessInstanceTest(){
		engine=Configuration.getProcessEngine();
	}
	protected void setUp(){
		engine.getRepositoryService().createDeployment()
		.addResourceFromClasspath("helloworld.jpdl.xml").deploy();
	}
	
	public void testProcessInstance(){
		//这个是专门管理流程实例的
		ExecutionService executionService=engine.getExecutionService();
		//通过流程定义文件的名称当做KEY来获取流程实例;也就是发布新流程
		ProcessInstance processInstance=executionService.startProcessInstanceByKey("helloworld");
		System.out.println(processInstance);
		
		//这里输出流程实例是否结束,针对本实例来说肯定是FALSE,因为本实例中有STATE,所以会在STATE这里处理等待状态,不会结束 
		//也就是接下来要说的执行等待的流程,除非你调用executionService.signalExecutionById
		System.out.println(processInstance.isEnded());
		
		//这个方法将是处理等待转该的流程执行到结束,返回值热仍然是一个流程实例
		processInstance=executionService.signalExecutionById(processInstance.getId());
		System.out.println(processInstance.isEnded());
	}
	public void testDeleteProcessInstance(){
		ExecutionService executionService=engine.getExecutionService();
		ProcessInstance processInstance=executionService.startProcessInstanceByKey("helloworld");
		executionService.deleteProcessInstanceCascade(processInstance.getId());
		
	}
	
	public void testProcessInastanceList(){
	  ExecutionService executionService=engine.getExecutionService();
	  ProcessInstance pi=executionService.startProcessInstanceByKey("helloworld");
	  ProcessInstance pi1=executionService.startProcessInstanceByKey("helloworld");
	  List<ProcessInstance> pis=executionService.createProcessInstanceQuery().list();
	  for (ProcessInstance processInstance : pis) {
		System.out.println(processInstance);
	}
	}
}

 

 

 

  • 大小: 8.6 KB
  • 大小: 4.7 KB
分享到:
评论

相关推荐

    jbpm4.4的安装myeclipse配置还有helloworld实例

    ### jBPM 4.4 开发环境搭建与 HelloWorld 实例...通过以上步骤,您将能够成功搭建 jBPM 4.4 开发环境,并完成一个简单的 HelloWorld 示例。这不仅有助于加深对 jBPM 框架的理解,也为后续的开发工作奠定了坚实的基础。

    Maven3+JBPM4.4+mysql helloworld例子

    至此,我们就完成了基于Maven3、JBPM4.4和MySQL的HelloWorld示例。这个简单的应用展示了如何配置和集成这些技术,启动并管理一个基本的业务流程。在实际项目中,你可以根据需要扩展这个例子,添加更多的流程节点和...

    JBPM4.4 工作流 入门 例子

    理解了HelloWorld示例后,你可以尝试更复杂的流程,例如包含条件分支、循环、子流程等。同时,了解如何集成JBPM与Spring、Hibernate等框架,以及如何使用监控工具(如Kie Workbench)进行流程管理和优化,都是提升...

    JBPM相关文档大全

    JBPM4.4之HelloWorld示例.doc jbpm4.4会签实例.doc jbpm4.4安装配置step by step.doc jbpm4自带数据库分析.doc jBPM_4教程PPT.pdf JBPM与SSH架构融合.doc 工作流模型分析_v1.1.pdf 揭秘jbpm流程引擎内核设计...

    jbpm4.4工作流开发指南pdf

    - **HelloWorld 示例**: - 定义流程:使用 JPDL (Jobflow Process Definition Language) 定义简单的流程。 - 启动流程实例:通过 API 创建流程实例。 - 执行流程:让流程运行起来,并观察每个步骤的状态变化。 ...

    jbpm-4.4实用教材helloword.txt

    本教材通过一个简单的HelloWorld示例,介绍了JBPM的基本概念、JPDL语言的使用以及如何进行环境搭建和配置。通过这些基础知识的学习,初学者可以快速入门JBPM,并能够基于此进行更深入的研究和实践。

    JBPM4环境搭建.docx

    最后,读者可以导入示例项目,例如 HelloWorld 项目。首先,需要将示例解压至 Eclipse 的 workspace 目录下,然后在 Eclipse 的 Package Explorer 中,点击右键,选择“Import”选项,选择“Existing Projects into ...

    jbpm学习笔记jbpm学习笔记

    2. 点击“Add”,接着选择“Archive”,导入jbpm4.4包中的“jbpm-gpd-site.zip”文件。 3. 勾选“jBPM jPDL4 N201007071649”复选框,然后依次点击“Next”和“Finish”,完成插件安装。 接下来是配置运行环境,...

    jbpm3.1

    通过一个简单的 HelloWorld 流程来介绍如何使用 jBPM 创建和执行流程。 **3.2. 数据库示例** 演示如何设置数据库来支持 jBPM 的持久化需求,包括配置 Hibernate 与数据库的连接。 **3.3. 上下文示例:流程变量** ...

    jboss --JBPM介绍及应用

    为了更好地理解如何在流程中集成Java代码,可以创建一个简单的“Hello World”Action作为示例。 - **创建Action类**:在Java项目中新建一个类,实现特定接口以定义动作的行为。 - **集成Action**:在流程定义中调用...

    JBPM-v3.2-userguide

    通过简单的HelloWorld示例介绍如何快速启动并执行一个基本的JBPM流程。 #### 3.2 数据库示例 展示如何将JBPM与数据库集成,持久化流程实例和任务状态。 #### 3.3 上下文示例:流程变量 讲解如何在流程中使用变量,...

    jbpm jpdl 帮助文档pdf版

    #### 3.1 HelloWorld example - **入门示例**:展示了如何使用jBPM创建一个简单的“Hello World”工作流。 - **步骤**:从创建流程定义到执行流程实例的过程。 #### 3.2 Database example - **数据库集成**:介绍...

    JBoss jBPM jPDL中文指南

    ##### 4.1 HelloWorld实例 - 这是最简单的入门案例,展示了如何使用jPDL定义并执行一个基本的流程。 ##### 4.2 Database实例 - **Database实例** 展示了如何将流程状态存储到数据库中,以便于长期跟踪和审计。 ###...

    深入浅出jBPM完整版part1

    .........................................7 1.3 jBPM版helloworld.....................................10 1.3.1 创建helloworld流程......................13 1.3.2 设计流程图 ..................................

    深入浅出jBPM完整版part2

    .........................................7 1.3 jBPM版helloworld.....................................10 1.3.1 创建helloworld流程......................13 1.3.2 设计流程图 ..................................

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    1.4. Seam 和jBPM:待办事项列表(todo list)示例..................................................................................................... 32 1.4.1. 理解代码....................................

Global site tag (gtag.js) - Google Analytics