`
windspy
  • 浏览: 30707 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jBPM 4使用手记

阅读更多

使用了一下jBPM 4。简单测试了一个"猜点"的小应用。

 

先下载了jBPM 4.0 alpha1和eclipse 3.4.1。在eclipse中设置了jBPM Libarary(jbpm.jar)和jBPM_refer(lib文件夹下的所有jar包)变量。

 

代码结构如图1:

 

图1

 

其中Boss.java是庄家。

 

public class Boss {

	public int go(){
		int go = new Random().nextInt(9);
		System.out.println("Boss hands with "+ go);
		return go;
	}
	
	public boolean bingle(String answer){
		int parse = Integer.parseInt(answer);
		if (parse==go())
			return true;
		return false;
	}
}

 

go方法是震甩子,0-9点。bingle方法是返回输赢结果。

 

BossTest.java是测试程序。

 

public class BossTest extends DbTestCase {
	
	public void testProcess(){
		deployJpdlResource("org/jbpm/guess.jpdl.xml");
	    
	    Execution execution = executionService.startExecutionByKey("guess");
	    String executionId = execution.getId();
	    
	    Boolean bingle = (Boolean) executionService.getVariable(executionId, "response");
	    
	    if (bingle)
			  System.out.println("you win!");
		  else
			  System.out.println("you lost!");
	}
}

 

这个类的作用是调用jBPM 4来进行猜点数。

 

现在进行jPDL建模。图形流程见图2:

 

图2

 

流程很简单,调用一段Boss类的bingle方法的Java代码。

 

其中流程文件内容是:

 

<process xmlns="http://jbpm.org/4/jpdl" name="guess">
   <start g="26,94,48,48">
      <flow to="verify bingle"/>
   </start>
   <java name="verify bingle" class="org.jbpm.Boss"
        method="bingle"
        var="response" g="256,92,92,52">
        <arg><string value="2"/></arg>
      <flow to="end"/>
   </java>
   <state name="end" g="398,94,48,48"/>
</process>

 这里,我们可以看出,该流程猜测庄家点数为"2"。

 

这样jBPM 4就能够被BossTest.java调用,并得到竞猜结果,"You win" OR "You lost"。

 

下一步,我们将测试使用jBPM定义Task来参与竞猜的例子。

 

附件是实例代码。请各位多指教,谢谢。

分享到:
评论
8 楼 diffuser 2009-07-10  
怎么都是用junit进行测试发布的,有没有用应用程序发布运行的?
7 楼 diffuser 2009-07-10  
怎么都是用junit的,有没有用程序发布运行的?
6 楼 wslfh2008 2009-07-07  
这段时间也开始在看jbpm4,发现定义流程的时候不能使用中文。虽然一开始可以输入中文,但保存后重新打开,出现的是乱码,不知道你这边有没有遇到类似的问题。
小开ye 写道
这段时间也开始在看jbpm4,发现定义流程的时候不能使用中文。虽然一开始可以输入中文,但保存后重新打开,出现的是乱码,不知道你这边有没有遇到类似的问题。

我也遇到过,不知道是为什么,可能是他的一个BUG吧,还有就是JBPM3有.jpg的流程图片,可是4怎么得到呢?
5 楼 NO1111 2009-04-15  
为什么我下载的jbpm-4.0.0.Beta1安装程序安装完后根本没有jbpm.jar? 只有jbpm-api.jar 而且里面没有org.jbpm.test包的,我看了下org.jbpm.test在jbpm-test-db.jar中,但这个包里也没有DbTestCase这个类。请问这是怎么回事呢?
4 楼 worldljl 2009-03-21  
如果按照作者说的去做:“在eclipse中设置了jBPM Libarary(jbpm.jar)和jBPM_refer(lib文件夹下的所有jar包)变量。”

是不会出现异常 的。
3 楼 gritlimu 2009-03-15  
编辑源文件没有问题,只是图形编辑的时候不能保存成GBK格式的,自动转换成UTF-8了
2 楼 libin2722 2009-03-06  
有异常,org.jbpm.JbpmException: couldn't construct new 'org.hibernate.cfg.Configuration' with args null






10:10:57,293 INF | [JbpmTestCase] === starting testBingle =============================
guess the number:
3
Boss hands with 3
you win!
Boss hands with 1
10:11:00,433 INF | [JbpmTestCase] === starting testGo =============================
10:11:00,449 INF | [JbpmTestCase] === starting testProcess =============================
10:11:00,449 FIN | [StandardTransaction] beginning StandardTransaction[22691179]
### EXCEPTION ###########################################
10:11:00,574 SEV | [DefaultCommandService] exception while executing command org.jbpm.pvm.internal.cmd.DeployCmd@f11404
org.jbpm.pvm.internal.wire.WireException: getting org.hibernate.SessionFactory previously resulted in an exception
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:393)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:148)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:139)
at org.jbpm.pvm.internal.wire.descriptor.HibernateSessionDescriptor.construct(HibernateSessionDescriptor.java:62)
at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.wire.descriptor.HibernatePvmDbSessionDescriptor.initialize(HibernatePvmDbSessionDescriptor.java:49)
at org.jbpm.pvm.internal.wire.WireContext.performInitialization(WireContext.java:537)
at org.jbpm.pvm.internal.wire.WireContext.initialize(WireContext.java:499)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:453)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:148)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:139)
at org.jbpm.pvm.internal.deploy.CheckProcessDeployer.deploy(CheckProcessDeployer.java:52)
at org.jbpm.pvm.internal.deploy.DeployerManager.deploy(DeployerManager.java:61)
at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:55)
at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:37)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:52)
at org.jbpm.pvm.internal.svc.ProcessServiceImpl.deploy(ProcessServiceImpl.java:83)
at org.jbpm.pvm.internal.svc.DeploymentImpl.deploy(DeploymentImpl.java:319)
at org.jbpm.test.DbTestCase.deployJpdlResource(DbTestCase.java:111)
at org.jbpm.BossTest.testProcess(BossTest.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at org.jbpm.test.JbpmTestCase.runTest(JbpmTestCase.java:69)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.jbpm.JbpmException: couldn't construct new 'org.hibernate.cfg.Configuration' with args null
at org.jbpm.pvm.internal.util.ReflectUtil.newInstance(ReflectUtil.java:223)
at org.jbpm.pvm.internal.util.ReflectUtil.newInstance(ReflectUtil.java:192)
at org.jbpm.pvm.internal.wire.descriptor.HibernateConfigurationDescriptor.construct(HibernateConfigurationDescriptor.java:72)
at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.wire.descriptor.HibernateSessionFactoryDescriptor.construct(HibernateSessionFactoryDescriptor.java:55)
at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.cfg.JbpmConfiguration.get(JbpmConfiguration.java:225)
at org.jbpm.test.Db.verifyClean(Db.java:139)
at org.jbpm.test.Db.verifyClean(Db.java:60)
at org.jbpm.test.DbTestCase.tearDown(DbTestCase.java:95)
at junit.framework.TestCase.runBare(TestCase.java:130)
... 12 more
Caused by: java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.jbpm.pvm.internal.util.ReflectUtil.newInstance(ReflectUtil.java:220)
... 32 more
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) (Caused by org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException))
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:126)
... 37 more
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
... 41 more
Caused by: java.lang.NullPointerException
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:374)
... 42 more
### EXCEPTION ###########################################
10:11:00,574 FIN | [StandardTransaction] rolled back
org.jbpm.pvm.internal.wire.WireException: getting org.hibernate.SessionFactory previously resulted in an exception
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:393)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:148)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:139)
at org.jbpm.pvm.internal.wire.descriptor.HibernateSessionDescriptor.construct(HibernateSessionDescriptor.java:62)
at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.wire.descriptor.HibernatePvmDbSessionDescriptor.initialize(HibernatePvmDbSessionDescriptor.java:49)
at org.jbpm.pvm.internal.wire.WireContext.performInitialization(WireContext.java:537)
at org.jbpm.pvm.internal.wire.WireContext.initialize(WireContext.java:499)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:453)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:148)
at org.jbpm.pvm.internal.env.BasicEnvironment.get(BasicEnvironment.java:139)
at org.jbpm.pvm.internal.deploy.CheckProcessDeployer.deploy(CheckProcessDeployer.java:52)
at org.jbpm.pvm.internal.deploy.DeployerManager.deploy(DeployerManager.java:61)
at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:55)
at org.jbpm.pvm.internal.cmd.DeployCmd.execute(DeployCmd.java:37)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:54)
at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:52)
at org.jbpm.pvm.internal.svc.ProcessServiceImpl.deploy(ProcessServiceImpl.java:83)
at org.jbpm.pvm.internal.svc.DeploymentImpl.deploy(DeploymentImpl.java:319)
at org.jbpm.test.DbTestCase.deployJpdlResource(DbTestCase.java:111)
at org.jbpm.BossTest.testProcess(BossTest.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at org.jbpm.test.JbpmTestCase.runTest(JbpmTestCase.java:69)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.jbpm.JbpmException: couldn't construct new 'org.hibernate.cfg.Configuration' with args null
at org.jbpm.pvm.internal.util.ReflectUtil.newInstance(ReflectUtil.java:223)
at org.jbpm.pvm.internal.util.ReflectUtil.newInstance(ReflectUtil.java:192)
at org.jbpm.pvm.internal.wire.descriptor.HibernateConfigurationDescriptor.construct(HibernateConfigurationDescriptor.java:72)
at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.pvm.internal.wire.descriptor.HibernateSessionFactoryDescriptor.construct(HibernateSessionFactoryDescriptor.java:55)
at org.jbpm.pvm.internal.wire.WireContext.construct(WireContext.java:473)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:452)
at org.jbpm.pvm.internal.wire.WireContext.create(WireContext.java:441)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:421)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:331)
at org.jbpm.pvm.internal.wire.WireContext.get(WireContext.java:706)
at org.jbpm.cfg.JbpmConfiguration.get(JbpmConfiguration.java:225)
at org.jbpm.test.Db.verifyClean(Db.java:139)
at org.jbpm.test.Db.verifyClean(Db.java:60)
at org.jbpm.test.DbTestCase.tearDown(DbTestCase.java:95)
at junit.framework.TestCase.runBare(TestCase.java:130)
... 12 more
Caused by: java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.jbpm.pvm.internal.util.ReflectUtil.newInstance(ReflectUtil.java:220)
... 32 more
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) (Caused by org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException))
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:126)
... 37 more
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
... 41 more
Caused by: java.lang.NullPointerException
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:374)
... 42 more
1 楼 小开ye 2009-02-19  
这段时间也开始在看jbpm4,发现定义流程的时候不能使用中文。虽然一开始可以输入中文,但保存后重新打开,出现的是乱码,不知道你这边有没有遇到类似的问题。

相关推荐

    jbpm4源码jbpm4源码jbpm4源码

    jbpm4使用Hibernate作为持久化框架,保存流程实例、任务实例等数据到数据库中,保证了流程状态在系统重启后可以恢复。 6. **工作记忆与事件处理** jbpm4的工作记忆管理流程运行时的状态,包括变量、事实等。事件...

    JBPM4 学习使用总结

    **JBPM4 学习使用总结** JBPM4(Java Business Process Management)是Jboss公司推出的一款开源的工作流管理系统,它提供了完整的业务流程自动化解决方案,包括流程设计、部署、执行、监控以及管理等功能。在深入...

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    jBPM4工作流应用开发指南.pdf

    本指南由胡奇编写,旨在为开发者提供一个全面的参考,帮助他们快速学习和掌握使用jBPM4进行工作流应用的开发。 ### 标题知识点: - **工作流应用开发:** 工作流应用开发是指通过建立工作流模型,使用计算机程序来...

    jbpm4案例源码

    在阅读《jBPM4工作流应用开发指南.pdf》这本书时,你可以学习到如何使用jbpm4的API进行流程设计、部署和执行,以及如何进行流程实例的查询和管理。书中可能还会涉及如何处理异常、分支和合并逻辑,以及如何进行流程...

    jBPM4工作流示例jbpmDemo

    **jbPM4工作流示例jbpmDemo**是一款基于jBPM4的工作流管理系统实例,旨在帮助用户深入了解和掌握jBPM4工作流引擎的使用方法。jBPM4是一款强大的开源工作流管理系统,它提供了流程建模、执行以及监控等功能,广泛应用...

    jbpm4新手教程

    jbpm4新手教程

    jBPM4入门基础环境配置

    jBPM4使用JPA进行数据持久化,所以需要配置数据库连接。在`persistence.xml`文件中添加相应的JDBC连接信息,如数据库驱动、URL、用户名和密码。 ### 6. 编写代码实现业务逻辑 在流程定义中,每个任务节点通常对应...

    jBPM4完整例子

    3. **流程建模**:使用jBPM4的流程建模工具,如eclipse的jbpm plugin,创建请假流程模型,定义各个活动(如申请、审批等)及它们之间的流转规则。 4. **部署流程**:将建好的流程模型部署到jBPM4的工作流引擎中,使...

    jbpm4的员工请假例子原码

    1. **流程定义**:jbpm4使用BPMN 2.0(Business Process Modeling Notation)标准来定义流程图,使得流程可视化且易于理解。在员工请假流程中,可能包括请假申请、部门审批、人力资源审核等环节,每个环节都可以通过...

    jBPM4用户指南入门教程

    同时,还需要配置数据库连接,因为jBPM4使用数据库来存储流程实例和相关数据。可以使用H2内嵌式数据库,或者根据项目需求选择其他支持的数据库如MySQL、Oracle等。 **第三章 流程设计器** jBPM4提供了一个直观的...

    JBPM4 开发文档 实例 流程

    **JBPM4 开发文档详解** JBPM4(Java Business Process Management 4)是一个轻量级的开源工作流管理系统,基于J2EE架构,旨在帮助开发者实现复杂的业务流程自动化。该项目于2004年10月18日发布2.0版本,并随后成为...

    jbpm4实例源码,可直接运行

    2. **流程定义(Process Definition)**:jbpm4使用XML文件(通常为*.bpmn)来定义流程,这些文件包含了流程的所有节点、连接线、事件、任务等元素。在实例源码中,你可以看到如何创建和配置这些流程定义。 3. **...

    JBPM4使用小结.doc

    JBPM4 使用小结 JBPM4 是 JBoss 开发的 Java 工作流引擎,它提供了可视化的流程设计界面和基于 Hibernate 的持久层框架。下面是对 JBPM4 的主要 API 介绍和使用。 ProcessEngine ProcessEngine 是 JBPM4 的流程...

    jbpm4 完整的请假流程

    3. **示例代码(.java)**:展示如何使用jbpm4 API来启动流程实例、查询任务、完成任务等操作。 4. **数据库脚本(.sql)**:用于创建jbpm4所需的数据库表结构。 5. **配置文件(如jbpm.cfg.xml)**:定义jbpm4的...

    JBPM4 java源代码分包详解JBPM4

    【JBPM4 Java源代码分包详解】 JBPM4是一个流行的开源工作流管理系统,它提供了一整套用于设计、执行和管理业务流程的工具。在深入研究JBPM4的源代码时,我们可以从其包结构中了解到框架的核心功能和设计理念。 1....

    jbpm4web-JBPM4的一个web版本的Demo

    【jbpm4web - JBPM4的Web版Demo详解】 JBPM4是一个开源的工作流管理系统,它提供了强大的业务流程管理(BPM)功能,包括流程设计、执行、监控和优化。"jbpm4web"是基于JBPM4开发的一个Web版本的示例项目,旨在帮助...

Global site tag (gtag.js) - Google Analytics