jbpm学习笔记(二)--jbpmHelloWorld(运行环境配置)

本篇文章通过编写一个HelloWorld小程序,来初步讲述jbpm运行环境配置的全过程。

1.创建工程

在eclipse中创建java工程(没错是java工程),起名为chuang_jbpm。然后再工程的src目录下新建文件jbpmHellowWorld.jpdl.xml,如图2-1所示:


图2-1 创建jpdl文件

2.编辑流程定义jpdl.xml文件

jpdl流程定义文件可以通过图形界面来编辑,也可以编写流程的xml代码,如图2-2所示就是使用图形界面进行编辑。


图2-2 编辑流程

流程定义对应代码:

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

<process name="jbpmHellowWorld" xmlns="http://jbpm.org/4.4/jpdl">
   <start name="start1" g="150,69,48,48">
      <transition name="to state1" to="state1" g="-56,-22"/>
   </start>
   <end name="end1" g="177,310,48,48"/>
   <state name="state1" g="147,180,92,52">
      <transition name="to end1" to="end1" g="-50,-22"/>
   </state>
</process>

3、导入程序配置文件

由于我们的程序比较简单,所以配置文件直接使用jbpm4.4自带例子中的配置文件即可,到jbpm4.4的examples/src目录下拷贝相应配置文件即可入图2-3所示:


图2-3 导入配置文件

将相应配置文件拷贝到我们新建工程的src目录下。

4、导入第三方类库

开发jbpm流程部署需要有第三方jbpm类库支持,这些类都可以在jbpm4.4中找到,建议自己创建一个user Library然后将这些jar文件导入即可,这些jar文件在jbpm4.4的lib目录下,同时注意不要忘了jbpm解压的根目录下有一个jbpm.jar文件也要包含进去。

最后导入的效果如图2-4所示:


图 2-4 导入第三方类库

5、编写流程发布文件

jbpm流程定义的发布要通过java来实现,我们首先创建helloTest.java,将其保存到com.chuang包下,这里附代码如下

package com.chuang;

import junit.framework.TestCase;
import org.jbpm.api.*;
import java.util.*;

public class helloTest extends TestCase {
	ProcessEngine processEngine;//定义流程引擎
	
	public helloTest()//构造函数
	{
		//初始化流程引擎
		//作用是自动读取src目录下的jbpm.cfg.xml的内容
		processEngine=Configuration.getProcessEngine();
	}
	
	public void testDeploy()//测试发布函数
	{
		//定义RepositoryService对象
		RepositoryService repositoryService = processEngine.getRepositoryService();
		//发布流程定义
		String deploymentId = repositoryService.createDeployment().addResourceFromClasspath("jbpmHellowWorld.jpdl.xml").deploy();
		//查看流程定义信息,获得流程定义信息List
		List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().list();
		//循环打印流程定义信息
		for(ProcessDefinition pd:list)
		{
			System.out.println(pd.getId());
		}
		
		//删除流程定义(级联删除),防止同一个流程定义下有多个子流程定义而无法删除的情况
		repositoryService.deleteDeploymentCascade(deploymentId);
		//查看删除后,已发布的流程定义的总数预计输出0
		System.out.println(repositoryService.createProcessDefinitionQuery().list().size());
	}

}
6、程序运行效果

通过执行helloTest.java(Run As JUnit Test)可以看到如下输出:

16:02:14,014 FIN | [WireContext] eagerly initializing org.jbpm.pvm.internal.id.DatabaseIdComposer
16:02:14,093 INF | [Environment] Hibernate 3.3.1.GA
16:02:14,093 INF | [Environment] hibernate.properties not found
16:02:14,109 INF | [Environment] Bytecode provider name : javassist
16:02:14,109 INF | [Environment] using JDK 1.4 java.sql.Timestamp handling
16:02:14,203 INF | [Configuration] configuring from resource: jbpm.hibernate.cfg.xml
16:02:14,203 INF | [Configuration] Configuration resource: jbpm.hibernate.cfg.xml
16:02:14,359 INF | [Configuration] Reading mappings from resource : jbpm.repository.hbm.xml
16:02:14,608 INF | [Configuration] Reading mappings from resource : jbpm.execution.hbm.xml
16:02:14,764 INF | [Configuration] Reading mappings from resource : jbpm.history.hbm.xml
16:02:14,795 INF | [Configuration] Reading mappings from resource : jbpm.task.hbm.xml
16:02:14,827 INF | [Configuration] Reading mappings from resource : jbpm.identity.hbm.xml
16:02:14,842 INF | [Configuration] Configured SessionFactory: null
16:02:14,873 INF | [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
16:02:14,873 INF | [DriverManagerConnectionProvider] Hibernate connection pool size: 20
16:02:14,873 INF | [DriverManagerConnectionProvider] autocommit mode: false
16:02:14,951 INF | [DriverManagerConnectionProvider] using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:mem:.
16:02:14,951 INF | [DriverManagerConnectionProvider] connection properties: {user=sa, password=****}
16:02:15,217 INF | [Dialect] Using dialect: org.hibernate.dialect.HSQLDialect
16:02:15,232 INF | [TransactionFactoryFactory] Using default transaction strategy (direct JDBC transactions)
16:02:15,232 INF | [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
16:02:15,249 INF | [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
16:02:15,420 INF | [SessionFactoryImpl] building session factory
16:02:16,076 INF | [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
16:02:16,091 INF | [SchemaExport] Running hbm2ddl schema export
16:02:16,091 INF | [SchemaExport] exporting generated schema to database
16:02:16,138 INF | [SchemaExport] schema export complete
16:02:16,528 FIN | [HibernateSessionResource] ----- beginning hibernate tx 16267615 --------------------------------------------------------
16:02:16,544 FIN | [SQL] 
    select
        top ? propertyim0_.KEY_ as KEY1_2_,
        propertyim0_.VERSION_ as VERSION2_2_,
        propertyim0_.VALUE_ as VALUE3_2_ 
    from
        JBPM4_PROPERTY propertyim0_
16:02:16,560 FIN | [SQL] 
    select
        propertyim0_.KEY_ as KEY1_2_0_,
        propertyim0_.VERSION_ as VERSION2_2_0_,
        propertyim0_.VALUE_ as VALUE3_2_0_ 
    from
        JBPM4_PROPERTY propertyim0_ 
    where
        propertyim0_.KEY_=?
16:02:16,560 FST | [StringType] binding 'next.dbid' to parameter: 1
16:02:16,560 FIN | [SQL] 
    select
        propertyim0_.KEY_ as KEY1_2_0_,
        propertyim0_.VERSION_ as VERSION2_2_0_,
        prope

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值