今天索性想捡起很久没有碰过的工作流引擎jBPM,试验了里面的HelloWorld小例子。
代码很简单,就一个类,所以把代码贴出来,很简单,并不复杂,基本简单概括了jBPM运行的几个细节。
这里看得出,我们需要几个类包:jpdl、junit或者还需要dom4j。
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import junit.framework.TestCase;
public class HelloWorld extends TestCase {
public void testHelloWorldProcess(){
//第一个例子,jbpm自带的是直接把xml定义内容复制到这里。
//用的是parseXmlString()方法来解析的。我这里替换成了如下定义文件,注意,解析xml的方法并不一样
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("processDefinition.xml");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
Token token = processInstance.getRootToken();
assertSame(processDefinition.getStartState(),token.getNode());
token.signal();
assertSame(processDefinition.getNode("s"),token.getNode());
token.signal();
assertSame(processDefinition.getNode("end"),token.getNode());
}
}
过程中,出了问题。
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.parseXmlInputStream(ProcessDefinition.java:179)
at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:160)
at HelloWorld.testHelloWorldProcess(HelloWorld.java:9)
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 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)
... 27 more
Caused by:这句写的很清楚,jbpm配置源jbpm.cfg.xml不可用。也就是我们并没有在src目录下建立这个文件。
解决方法:在jpdl根目录下的config文件夹内直接复制这个文件到src目录下(我用eclipse)。绿条出现。
分享到:
相关推荐
这个可运行实例源码包含了一个完整的jbpm3.2.3环境,用于帮助开发者理解并学习如何在实际项目中应用jbpm。 jbpm的核心功能包括流程定义、流程实例的启动、任务管理和监控。流程定义通常通过Business Process ...
【jbpm3.2.3例子】是一个基于特定技术环境的流程管理实例,它涵盖了jbpm(Java Business Process Management)3.2.3版本的使用,该版本是jbpm流程引擎的一个早期迭代,用于实现业务流程自动化。在这个例子中,我们将...
jbpm3.2.3是该框架的一个版本,它包含了一系列的jar包,这些jar包是运行和开发基于jbpm3.2.3应用程序的基础。 在jbpm3.2.3中,每个jar包都有其特定的功能和作用,它们共同构成了完整的jbpm框架。以下是可能包含在...
在本案例中,我们将讨论如何在MyEclipse 6.5这个集成开发环境中安装jBPM 3.2.3版本。 首先,MyEclipse 6.5是一款强大的Java EE集成开发环境,支持多种框架和技术,包括但不限于Spring、Hibernate和Struts等。然而,...
JBPM通过使用XML来定义工作流,这种文件通常以.jpdl.xml为扩展名,就像压缩包中的"helloworld.jpdl.xml"。 在“Hello World”例子中,我们首先会看到"helloworld.jpdl.xml"文件。这个文件是流程定义的载体,它描述...
在JBPM 3.2.3 版本中,数据库设计是整个系统的核心部分,用于存储流程定义、运行时流程实例以及与流程相关的各种数据。下面将详细介绍这些关键数据库表的功能和作用。 ### 1. 流程配置类数据库表 #### 1.1 JBPM_...
【JBPM3.2.3+TOMCAT 6.0+MYSQL 5.0】是一个集成环境,用于实现基于工作流的应用程序部署和数据管理。在这个配置中,JBPM(Java Business Process Management)是核心组件,它是一个开源的工作流管理系统,提供了业务...
jbpm3.2.3是该系统的一个较早版本,但仍然包含了大量的核心功能和设计理念,对于学习工作流管理和Java企业级应用开发具有重要的参考价值。 源码分析: 1. **架构概述**: jbpm3.2.3基于Java语言,采用了Maven构建...
【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...
【标题】"Mule + JBPM by Maven - HelloWorld" 指的是一个使用Mule ESB集成JBPM工作流引擎的示例项目,通过Maven构建。这个项目旨在帮助开发者理解如何将Mule与JBPM结合,实现业务流程管理功能。 Mule ESB...
开发环境: Eclipse3.3 、MyEclipse6.0、 tomcat6.0 、jdk1.5 、sqlserver2000、jbpm-jpdl-3.2.3 这是我自己整理的笔记,如果大家的环境和我一样的话一定没有问题,
本示例主要介绍如何使用Maven3与JBPM4.4集成,并在MySQL数据库环境下实现一个简单的 HelloWorld 应用。JBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了完整的BPM解决方案...
jbpm4 helloworld,详细参考 《partner4java 讲述jBPM4》之第一步:jBPM4概念 & helloworld http://blog.csdn.net/partner4java
**jBPM4.4开发实例** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。jBPM4.4是该框架的一个版本,它提供了强大的工作流服务,包括流程定义、流程实例管理、任务...
【jbpm4请假实例代码】是一个基于jbpm4工作流引擎的示例应用,它用于演示如何在实际项目中实现员工请假流程的自动化管理。jbpm4是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理功能,使得...
【Jbpm4HelloWorld】是基于JBPM(Java Business Process Management)框架的入门示例,这个项目旨在帮助初学者快速理解并掌握JBPM的基本用法。JBPM是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务...
**JBPM4.4会签实例详解** JBPM(Java Business Process Management)是一个开源的工作流管理系统,用于管理和执行业务流程。在JBPM4.4版本中,它提供了一个强大的平台来设计、部署和执行复杂的业务流程,其中包括了...
jbpm-jpdl-3.2.3.zip 是一个包含开源工作流引擎jbpm的版本3.2.3的压缩包。jbpm(Java Business Process Management)是一个强大的业务流程管理系统,它提供了完整的业务流程建模、执行和管理能力,特别适合于需要...