`
hxyt20
  • 浏览: 92050 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

第一个实现的jbpm的例子以及遇到的问题解决方案

阅读更多

第一个jbpm的例子实现步骤:

第一步:在eclipse中新建一个java project,项目名称为:jbpmExample_1。

 

第二步:导入Junit和jbpm的jar.

 

第三步:将jbpm下的config中的jbpm.cfg.xml拷贝到src目录下。

 

第四步:新建一个Junit Test Case 类名为:TestHelloWorld,代码如下:

package com.baoz.je.test;

import junit.framework.TestCase;

import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;

public class TestHelloWorld extends TestCase {

	protected void setUp() throws Exception {
		
	}
	
	public void testHelloWorldProcess(){
		ProcessDefinition processDefinition = new ProcessDefinition().parseXmlString("" +
				"<process-definition>" +" <start-state>" +
				" <transition to='s'/> " +" </start-state>" +
				" <state name='s'>" +" <transition to='end'/>" +
				" </state>" +" <end-state name='end'/>  " +
				"</process-definition>");
		
		ProcessInstance processInstance = new ProcessInstance(processDefinition);
		Token token = processInstance.getRootToken();
		assertSame(processDefinition.getStartState(), token.getNode());
		System.out.println("processDefinition.getStartState()="+processDefinition.getStartState().getName());
		System.out.println("token.getNode()="+token.getNode().getName());
		token.signal();
		assertSame(processDefinition.getNode("s"), token.getNode());
		System.out.println("processDefinition.getNode('s')="+processDefinition.getNode("s").getName());
		System.out.println("token.getNode()="+token.getNode().getName());
		token.signal();
		assertSame(processDefinition.getNode("end"), token.getNode());
		System.out.println("processDefinition.getNode('end')="+processDefinition.getNode("end").getName());
		System.out.println("token.getNode()="+token.getNode().getName());
		
	}

	protected void tearDown() throws Exception {
		super.tearDown();
	}

}

 

第五步:运行如上的Test Case,如果没有报错,而且控制台打印出如下的内容,表示此示例运行成功:

processDefinition.getStartState()=null
token.getNode()=null
processDefinition.getNode('s')=s
token.getNode()=s
processDefinition.getNode('end')=end
token.getNode()=end

 

注意点:假如你的项目中报如下错误:

org.jbpm.JbpmException: couldn't parse jbpm configuration from resource 'jbpm.cfg.xml'
	at org.jbpm.JbpmConfiguration.getInstance(JbpmConfiguration.java:292)
	at org.jbpm.JbpmConfiguration.getInstance(JbpmConfiguration.java:257)
	at org.jbpm.JbpmConfiguration$Configs.getObjectFactory(JbpmConfiguration.java:425)
	at org.jbpm.JbpmConfiguration$Configs.getObject(JbpmConfiguration.java:437)
	at org.jbpm.JbpmConfiguration$Configs.getString(JbpmConfiguration.java:441)
	at org.jbpm.graph.def.ProcessDefinition.createNewProcessDefinition(ProcessDefinition.java:97)
	at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:138)
	at org.jbpm.graph.def.ProcessDefinition.parseXmlString(ProcessDefinition.java:150)
	at com.baoz.je.test.TestHelloWorld.testHelloWorldProcess(TestHelloWorld.java:16)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	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: jbpm configuration resource 'jbpm.cfg.xml' is not available
	at org.jbpm.JbpmConfiguration.getInstance(JbpmConfiguration.java:286)
	... 26 more

 那么说明你没有将jbpm下的config中的jbpm.cfg.xml拷贝到src目录下,只有将jbpm下的config中的jbpm.cfg.xml拷贝到src目录下就能解决此问题,尽管jbpm.cfg.xml中没有内容,但是也必须拷贝进来。

 

0
1
分享到:
评论

相关推荐

    JBPM例子

    几个JBPM例子,全部原代码

    一个JBPM工作流例子,JBPM

    一个JBPM工作流例子,JBPM实现销售批复

    一个经典的jbpm例子,学jbpm必备的例子

    这是本人学习jbpm以来看过的写的最有条理的一个例子,基于现在网上jbpm的例子比较的少,所以上传上来和大家一起分享

    jbpm5第一个例子

    做好myeclipse集成后,按官方的文档做第一个例子即可。 http://www.mastertheboss.com/jbpm5/jbpm-5-tutorial-first-example 一般不会的问题,从官方找就行,但上面说的也不详细,结果搞了一天也没通,后来把条件...

    ssh与jbpm完整报销例子

    本例子网上也有,只是有点问题,本人经过修改后想留给第一次学习jbpm的人,希望不让他们为一个问题而花费很长时间. 由于所有的jar包已上传,所以不在用QQ发jar包给各位下载的朋友, 请在以下页面下载本项目的jar包: ...

    jbpm4.4请假例子,eclipse工程

    jbpm4.4请假例子,eclipse工程 数据库为自动创建hslsql数据库,每次启动会自动清除

    jbpm5完整的例子

    jbpm5完整的例子,用户任务,单元测试,

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...

    jbpm演示demo例子

    jbpm演示demo例子

    jbpm4.3问题解决

    jbpm4.3问题解决方法,我们根据您的错误给出针对性的解答!

    使用JBoss ESB和JBPM实现垂直市场解决方案VMS

    直市场解决方案(VMS)是NAVTEQ公司中的一个机构,负责为客户提供定制的解决方案,包括移动门户和导航系统。这些解决方案中包含了NAVTEQ 公司提供的服务以及第三方服务,以客户要求的方式交付组合服务和内容,这些...

    jbpm例子.doc

    一个jbpm工作流的例子。一个jbpm工作流的例子。

    jbpm例子 第一部分

    是一个可以在tomcat运行的例子,是ssh架构,共三部分,解压后里面又说明文档

    jbpm5 web整合例子

    jbpm5 web整合例子, 可直接导入eclipse运行,内涵多组流程设计,代码完整。

    jbpm4.0三个例子

    jbpm4的例子 在myeclipse7.5+eclipse3.42 jbpm4的包与mycelipse的包有几个冲突。 要包含lib包的,到jamin.cnblogs.com给我留言。

    JBPM4.4例子

    JBPM4.4入门例子(jsp+servlet)纯粹了解接口和基本操作。 jar包请到官网下载 另外项目部署之后可能会有问题,见里面的《部署说明》 希望对刚接触的朋友有用

    jbpm4.4+s2sh请假流程例子

    jbpm4.4整合s2sh 请假流程例子

    jbpm的一个实例

    JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上 JBPM的工程文件,大家可以到...

    JBPM工作流教程:3个电子书以及JBPM例子程序和源代码

    3个JBPM的经典电子教程: jBPM4.1中文用户手册.pdf jBPM详解_工作流管理系统.doc 深入浅出_jBPM_电子书.doc 以及一个JBPM的HelloWorld的例子

Global site tag (gtag.js) - Google Analytics