首页 > 其他分享 >JBPM4.4(1)-简单工程的搭建

JBPM4.4(1)-简单工程的搭建

时间:2023-04-10 09:34:27浏览次数:45  
标签:jbpm 工程 流程 processInstance JBPM4.4 println out 节点 搭建

 

 

源码下载

https://anonsvn.jboss.org/repos/jbpm/jbpm4/

JBPM是什么?

jBPM是一个可扩展、灵活的流程引擎, 它可以运行在独立的服务器上或者嵌入任何Java应用中。

使用的解析语言:JPDL

发布

只需要把jBPM (jbpm-4.X.zip) 下载下来,然后解压到你的硬盘上的什么地方。 你将看到下面的子目录:

  • doc: 用户手册,javadoc和开发指南
  • examples: 用户手册中用到的示例流程
  • install: 用于不同环境的安装脚本
  • lib: 第三方库和一些特定的jBPM依赖库
  • src: 源代码文件
  • jbpm.jar: jBPM主库归档
  • migration: 参考开发指南

必须安装的软件

jBPM需要JDK (标准java)5或更高版本。

http://java.sun.com/javase/downloads/index.jsp

为了执行ant脚本,你需要1.7.0或更高版本的apache ant:

http://ant.apache.org/bindownload.cgi

 

安装数据库

C:\jbpm-4.4\jbpm-4.4\install\src\db\create

数据库的sql文件在这个路径下可以直接导入,也可以通过ant进行更新数据库的配置。

安装插件

网上n多教程了,不截图了,按照网上其它的配置一下吧,挺全的都。

工程创建

打开eclipse新建eclipse工程

完成后将examples中的几个配置文件导进来

修改jbpm.hibernate.cfg.xml

我使用的是mysql,文件中内容如下:

 

View Code

 

新建流程定义文件如下:

是一个最简单的流程

新建TestHello.java并且继承JbpmTestCase

测试程序如下:

 

复制代码 public class TestHello extends JbpmTestCase {
String deploymentId;

protected void setUp() throws Exception {
super.setUp();

deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("com/jbpm/hellojbpm.jpdl.xml")
.deploy();
}

protected void tearDown() throws Exception {
repositoryService.deleteDeploymentCascade(deploymentId);

super.tearDown();
}

public void testHello() {
ProcessInstance processInstance = executionService
.startProcessInstanceByKey("hellojbpm");

System.out.println("流程实例Id:" + processInstance.getId());
System.out
.println("流程定义Id:" + processInstance.getProcessDefinitionId());

// 判断当前是否位于start节点
System.out.println("是否位于start节点:" + processInstance.isActive("start"));

// 判断当前是否位于state节点
System.out.println("是否位于zhangsan节点:" + processInstance.isActive("zhangsan"));

System.out.println("------------------------>使流程继续向下执行");

Execution executionInA = processInstance
.findActiveExecutionIn("zhangsan");
assertNotNull(executionInA);

// 判断当前是否位于state节点

processInstance = executionService.signalExecutionById(executionInA
.getId());
Execution executionInB = processInstance.findActiveExecutionIn("lishi");
assertNotNull(executionInB);

System.out.println("是否位于lishi节点:" + executionInB.isActive("lishi"));

processInstance = executionService.signalExecutionById(executionInB
.getId());
Execution executionInC = processInstance
.findActiveExecutionIn("wangwu");
assertNotNull(executionInC);

System.out.println("是否位于wangwu节点:" + executionInC.isActive("wangwu"));

}

} 复制代码

 

运行测试junit文件

结果如下:

流程实例Id:hellojbpm.220007
流程定义Id:hellojbpm-1
是否位于start节点:false
是否位于zhangsan节点:true
------------------------>使流程继续向下执行
是否位于lishi节点:true
是否位于wangwu节点:true

流程一步一步的向下执行了,在这个示例中使用了start和state结点,在后面的示例中,会逐步深入到其它的示例中。

在运行的过程中曾经遇到过一个错误

16:53:39,280 SEV | [AbstractFlushingEventListener] Could not synchronize database state with session

org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#7]

经过查找之后是hibernate的方言指定的有问题,将

org.hibernate.dialect.MySQLDialect

修改成

org.hibernate.dialect.MySQLInnoDBDialect

问题就可以解决了。

标签:jbpm,工程,流程,processInstance,JBPM4.4,println,out,节点,搭建
From: https://www.cnblogs.com/smallfa/p/17301768.html

相关文章

  • linux系统下Hadoop集群环境搭建
    1、前言基于redhat7.6系统搭建全分布式Hadoop3.3.5集群环境(模拟三台机,1主角色,2从角色)。 2、安装虚拟机参考:https://www.cnblogs.com/jpxjx/p/16800831.html 3、虚拟机安装redhat7.6参考:https://www.cnblogs.com/jpxjx/p/16815045.html 4、修改主机名vi/etc/hosts......
  • 搭建DNS从服务器
    安装软件yum-yinstallbind修改从服务器主配置文件vim/etc/named.confoptions{ listen-onport53{localhost;}; #此处改为localhost侦听的地址或者注释掉或者删掉 listen-on-v6port53{::1;}; directory "/var/named"; dump-file "/var/named/data/cac......
  • 50 openEuler搭建PostgreSQL数据库服务器-配置环境
    50openEuler搭建PostgreSQL数据库服务器-配置环境说明:以下环境配置仅为参考示例,具体配置视实际需求做配置50.1关闭防火墙并取消开机自启动说明:测试环境下通常会关闭防火墙以避免部分网络因素影响,视实际需求做配置。在root权限下停止防火墙。#systemctlstopfire......
  • 牛客-华为研发工程师编程题
    过于简单,至少目前这样的题做来没有意义1.汽水瓶intmain(){ //这个获取输入就不太常规 vector<int>in; stringtemp; //读入失败getline会返回一个空 while(getline(cin,temp)&&temp!="0"){ in.push_back(stoi(temp)); } //最多只借一个瓶子,这样凑成3......
  • 在云服务器上搭建hexo博客(亲测可用)
    前言​本来博客是用wordpress在服务器搭建的,但苦于wordpress的后端语言是php,对markdown的支持也不尽如人意,最终还是放弃了wordpress,转战后端为Node的Hexo框架。​整体思路:在服务器上配置Git环境,创建Git仓库在主机安装Hexo,并生成Hexo静态文件,通过与服务器链接,将静态文件推送......
  • 搭建SSH环境 [Arch Linux] [Xshell] [VirtualBox]
    搭建SSH环境[ArchLinux][Xshell][VirtualBox]1.主机ping通虚拟机网卡1:虚拟机能ping通主机+虚拟机能连接外网网卡2:主机能ping通虚拟机2.获取虚拟机IP(注意是网卡2的IP,即与主机在同一网关的IP)ifconfig此处我的虚拟机IP为192.168.56.101与主机VirtualBox网卡在同一......
  • CentOS7/RHEL7 pacemaker+corosync高可用集群搭建
    CentOS7/RHEL7pacemaker+corosync高可用集群搭建一、集群信息二、集群搭建1、制作软件源2、主机基础配置3、集群基础环境准备4、集群资源准备5、资源配置6、constraint配置7、stonith配置8、集群功能验证三、集群常用命令及作用1、验证群集安装2、查看群集资源3、使......
  • [从0开始]PHP+phpstudy留言板项目搭建教程及报错详析
    [从0开始]PHP+phpstudy留言板项目搭建教程及报错详析基础知识及工具准备基础知识:四种语言PHPPHP是在服务器端执行的脚本语言,适用于Web开发并可嵌入HTML中。学习网站:PHP教程|菜鸟教程SQLSQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统......
  • 不依赖 Spring 的简单 Main 工程
    1.搭建一个没有spring的工程importorg.jetbrains.kotlin.gradle.tasks.KotlinCompileplugins{kotlin("jvm")version"1.8.10"application}group="com.demo"version="1.0-SNAPSHOT"repositories{mavenCent......
  • AI Prompt Engineering 提示工程:提升你的创意与效率
    参考引言AI工具种类也开始进入大繁荣时代。根据There'sanAIForThat网站显示,自2002年-至今,AI社区已经构建了超过2400个AI工具,覆盖577种用途类别(当然,还有很多未收录的AI工具)。虽然AI工具已经有了,但如何用好这些工具却是另外一回事。本文将向您推荐一种名为AIProm......