jbpm4.4用户手册(4)

2019-05-18 12:56

单独的流程文件和流程归档。 它们通过JDBC连接直接部署到数据库中。 所以在你部署流程之前 需要保证数据库正在运行。

创建和部署流程归档的例子 可以在发布包的examples目录下找到ant脚本(build.xml)。 让我们看一下相关部分。 首先,path用来声明包含jbpm.jar和它的所有依赖库。

你使用的数据库的JDBC驱动jar应该也包含在path中。 MySQL, PostgreSQL和HSQLDB的驱动都包含在发布包中。 但是oracle的驱动你必须从oracle网站上单独下载, 因为我们没有被允许重新分发这个文件。

当一个业务归档被发布时,jBPM扫描 业务归档中所有以.jpdl.xml结尾的文件。 所以那些文件会被当做jPDL流程解析,然后可以用在运行引擎中。 业务归档中所有其他的资源也会作为资源 保存在部署过程中,然后可以通过 RepositoryService类中的 InputStream getResourceAsStream(long deploymentDbid, String resourceName);访问。 为了创建一个业务归档, 可以使用jar任务。

在jbpm-deploy被使用之前,它需要像这样进行声明:

从4.2版本开始,jBPM拥有了一个像jBPM3一样的流程类加载器机制。 从流程中引用的类必须至少在下面三种方式之一是 有效的:

业务存档中的.class文件。和jBPM3中不同,现在 存档文件的根被用来搜索类资源。 所以当类com.superdeluxsandwiches.Order 在流程文件中引用时,它会找到,当它在相同的业务归档中 的入门名称

com/superdeluxsandwiches/Order.class 类会被缓存(key是结合了发布和上下文类加载器), 所以它应该比jBPM 3中执行的更好。 ? 在调用jBPM的web应用中可用的类。 当jBPM部署到服务器端的jboss或tomcat中,jBPM会找到你的 web应用或企业应用,调用jBPM的类。 这是因为你使用了当前上下文类加载器, 在流程执行过程中查找类时。 ? 服务器端可用的类文件。比如像是在 tomcat和jboss的lib目录下的jar。

?

在实例中,一个包含了所有类的examples.jar被创建了, 并把它放在了JBoss服务器配置的lib目录下。 tomcat下操作相同。参考

install.examples.into.tomcat 和install.examples.into.jboss任务。在未来的一个发布版中 我们可能切换到业务存档自身包含的类。

第 5 章 服务

5.1. 流程定义,流程实例和执行

一个流程定义式对过程的步骤的描述。 比如,一个保险公司可以有一个贷款流程定义 描述公司如何处理贷款请求 的步骤的描述。

图 5.1. 贷款流程定义示例

流程实例代表着流程定义的特殊执行例子, 例如:上周五John Doe提出贷款买船, 代表着一个贷款流程定义的流程实例。

一个流程实例包括了所有运行阶段, 其中最典型的属性就是跟踪当前节点的指针。

图 5.2. 贷款流程实例的例子

假设汇款和存档可以同时执行, 那么主流程实例就包含了2个 用来跟踪状态的子节点:

图 5.3. 贷款执行例子

一般情况下,一个流程实例是一个执行树的根节点, 当一个新的流程实例启动时,实际上流程实例就处于根节点的位置, 这时只有它的\子节点\才可以被激活。

使用树状结构的原因在于, 这一概念只有一条执行路径, 使用起来更简单。 业务API不需要了解流程实例和执行之间功能的区别。 因此, API里只有一个执行类型来引用流程实例和执行。

5.2. ProcessEngine流程引擎

在jBPM内部通过各种服务相互作用。 服务接口可以从ProcessEngine中获得, 它是从Configuration构建的。

流程引擎是线程安全的,它可以保存在静态变量中, 甚至JNDI中或者其他重要位置。 在应用中,所有线程和请求都可以使用同一个流程引擎对象, 现在就告诉你怎么获得流程引擎。

这章中涉及到的代码和下一章中关于流程部署的代码, 都来自org.jbpm.examples.services.ServicesTest 例子。 ProcessEngine processEngine = new Configuration() .buildProcessEngine(); 上面的代码演示了如何通过classpath根目录下 默认的配置文件jbpm.cfg.xml创建一个ProcessService。 如果你要指定其他位置的配置文件, 请使用setResource()方法:

ProcessEngine processEngine = new Configuration() .setResource(\ .buildProcessEngine(); 还有其他setXxxx()方法可以获得配置内容, 例如:从InputStream中、 从xml字符串中、从InputSource中、 从URL中或者从文件(File)中。 我们可以根据流程引擎得到 下面的服务:

RepositoryService repositoryService = processEngine.getRepositoryService(); ExecutionService executionService = processEngine.getExecutionService(); TaskService taskService = processEngine.getTaskService(); HistoryService historyService = processEngine.getHistoryService(); ManagementService managementService = processEngine.getManagementService();


jbpm4.4用户手册(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年度安全生产工作计划(厂级)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: