启动jboss_3种启动JBoss BPM流程的基本方法

启动jboss

技巧和窍门 这一集提示和技巧将帮助您了解根据需要启动流程实例的最佳方法。

规划项目可能包括流程项目,但是您是否考虑过可以启动流程的各种方式?

也许您的JBoss BPM Suite在您的体系结构中本地运行,也许您在云中运行,但是无论它在哪里,您仍然需要就如何启动流程做出明智的选择。

我们将在这里介绍三种可以最好地启动JBoss BPM流程的基本方法:

  1. UI仪表板
  2. RestAPI
  3. 客户端应用程序(API)
右上角的“构建和部署”按钮。

右上角的“构建和部署”按钮。

BPM Suite用户界面

为了完整性,我们不得不提到启动流程实例的功能是以JBoss BPM Suite仪表板工具中的按钮的形式存在的。

登录JBoss BPM Suite之后,您已经完成了项目开发,然后可以按照以下步骤构建和部署BPM项目。

AUTHORING -> PROJECT AUTHORING -> TOOLS -> PROJECT EDITOR -> BUILD&DEPLOY (button)

下一步是以两种方式之一在流程管理透视图中启动流程实例。

1. PROCESS MANAGEMENT -> PROCESS DEFINITIONS -> start-icon2. PROCESS MANAGEMENT -> PROCESS DEFINITIONS -> magnifying-glass-icon -> in DETAILS panel -> NEW INSTANCE (button)
流程定义的右上角有开始图标。

流程定义的右上角有开始图标。

这两种方法都将导致流程实例启动,如果要将数据提交给BPM流程,则会弹出一个启动表单。

RestAPI

假设您打算在从多个可能的位置进行部署之后开始BPM流程,我们希望向您展示如何轻松地整合它们。

流程定义的详细信息视图具有“新实例”按钮。

流程定义的详细信息视图具有“新实例”按钮。

从Web应用程序,移动应用程序启动流程还是为企业创建后端服务以用作流程的起点都没有关系。 公开的RestAPI提供了触发BPM流程的完美方法,可以在以下代码示例中进行显示。

此示例是一个非常简单的Rest客户端,为清楚起见,它将把可能传递给此类客户端的各种变量直接嵌入到示例代码中。 没有任何变量传递给正在启动的流程,为此,我们将在涵盖客户端应用程序的部分中提供一个更完整的示例。

它发送一个启动流程命令,并且不希望来自被称为“ 客户评估BPM”流程的任何反馈,因为它是“直通流程”(STP)。

public class RestClientSimple {private static final String BASE_URL = "http://localhost:8080/business-central/rest/";private static final String AUTH_URL = "http://localhost:8080/business-central/org.kie.workbench.KIEWebapp/j_security_check";private static final String DEPLOYMENT_ID = "customer:evaluation:1.0";private static final String PROCESS_DEF_ID = "customer.evaluation";private static String username = "erics";private static String password = "bpmsuite";private static AuthenticationType type = AuthenticationType.FORM_BASED;public static void main(String[] args) throws Exception {System.out.println("Starting process instance: " + DEPLOYMENT_ID);System.out.println();// start a process instance with no variables.startProcess();System.out.println();System.out.println("Completed process instance: " + DEPLOYMENT_ID);}/*** Start a process using the rest api start call, no map variables passed.* * @throws Exception*/public static void startProcess() throws Exception {String newInstanceUrl = BASE_URL + "runtime/" + DEPLOYMENT_ID + "/process/" + PROCESS_DEF_ID + "/start";String dataFromService = getDataFromService(newInstanceUrl, "POST");System.out.println("newInstanceUrl:["+newInstanceUrl+"]");System.out.println("--------");System.out.println(dataFromService);System.out.println("--------");}<...SNIPPED MORE CODE...>
}

这里的基础是指向起始 RestAPI调用的业务中心URL的设置。 在主要方法中,可以找到对startProcess()的方法调用,该方法将构建RestAPI URL并捕获从JBoss BPM Suite发送的数据答复。

要查看实现方法的详细信息,请在JBoss BPM Suite和JBoss Fuse Integration Demo项目中完整地参考该类。

测试间奏

构建和部署流程后,对其进行测试的一种简便方法是使用curl通过RestAPI将请求推送到流程。 这样的请求如下所示,首先是通用形式,然后是与上一个示例中使用的相同的客户评估项目的真实运行。

通用的RestAPI调用和正确的身份验证请求在curl中完成,如下所示:

$ curl -X POST -H 'Accept: application/json' -uerics 'http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_par1=var1↦_par2=var2'

对于客户评估过程,使用curl调用启动过程,对我们的用户进行身份验证并收到JBoss BPM Suite的响应的完整周期应提供以下输出。

$ curl -X POST -H 'Accept: application/json' -uerics 'http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_employee=erics'Enter host password for user 'erics':  bpmsuite1!{"status":"SUCCESS","url":"http://localhost:8080/business-central/rest/runtime/customer:evaluation:1.1/process/customer.evaluation/start?map_employee=erics","index":null,"commandName":null,"processId":"customer.evaluation","id":3,"state":2,"eventTypes":[]}
我们的卷曲测试结果。

我们的卷曲测试结果。

如图所示,我们在流程实例透视图中看到流程实例已完成。

客户申请

启动JBoss BPM Suite流程实例的第三种也是最后一种方法是与注入一堆预定义的提交内容相结合,以填充报告历史记录,并且可以基于历史数据。

此处显示的示例在我们提供的大多数演示项目中均可用,但摘自Mortgage Demo项目 。

该演示客户端正在使用静态数据行,一次将其插入到进程中。 通过一些小的调整,就可以从现有数据源中提取历史数据,并以这种格式注入所需数量的进程。 这也是对过程项目进行压力测试的好方法。

如上所示,我们将跳过会话和流程细节的设置,而是提供到整个演示客户端类的链接,并将这些细节留给读者。

在这里,我们仅关注各个启动过程调用的外观。

public static void populateSamples(String userId, String password, String applicationContext, String deploymentId) {RuntimeEngine runtimeEngine = getRuntimeEngine( applicationContext, deploymentId, userId, password );KieSession kieSession = runtimeEngine.getKieSession();Map processVariables;//qualify with very low interest rate, great credit, non-jumbo loanprocessVariables = getProcessArgs( "Amy", "12301 Wilshire", 333224449, 100000, 500000, 100000, 30 );kieSession.startProcess( "com.redhat.bpms.examples.mortgage.MortgageApplication", processVariables );}

如您所见,最后一行是个人抵押贷款提交被推送到JBoss BPM Suite的位置。 如果检查课程的其余部分,您会发现多个条目是一个接一个地启动的。

我们希望您现在对启动流程并选择最适合您的项目的方式有了很好的了解。

翻译自: https://www.javacodegeeks.com/2014/09/3-essential-ways-to-start-your-jboss-bpm-process.html

启动jboss

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中rand()%900,c语言 n=rand()%5是什么意思

rand()函数会产生范围为0至32767的随机数&#xff0c;% 让它与5求余&#xff0c;变成0至4的随机数&#xff0c;不过每次启动程序产生的随机数都相等&#xff0c;在用srand(unsigned int)输入种子数后产生的才不一样&#xff0c;一般都用的 srand((unsigned int)time(NULL)) 产生…

c语言malloc calloc,C语言内存管理:malloc、calloc、free的实现

任何一个对C稍稍有了解的人都知道malloc、calloc、free。前面两个是用户态在堆上分配一段连续(虚拟地址)的内存空间&#xff0c;然后可以通过free释放&#xff0c;但是&#xff0c;同时也会有很多人对其背后的实现机制不了解。这篇文章则是通过介绍这三个函数&#xff0c;并简单…

c语言怎么循环输入单个字符,c语言 帮我检查一下 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,...

c语言 帮我检查一下 输入一段文字&#xff0c;每行用回车结束&#xff0c;文字输入完毕可以使用某个特殊字符作为结束&#xff0c;0HIDE152019.04.28浏览4次分享举报c语言输入一段文字&#xff0c;每行用回车结束&#xff0c;文字输入完毕可以使用某个特殊字符作为结束&#xf…

gradle发布jar_使用Gradle将JAR工件发布到Artifactory

gradle发布jar因此&#xff0c;我浪费了一两天&#xff08;只是投资&#xff09;来了解如何使用Gradle将JAR发布到本地运行的Artifactory服务器。 我使用Gradle Artifactory插件进行发布。 我迷失在无穷循环中&#xff0c;包括各种版本的各种插件和执行各种任务。 是的&#xf…

最新的20多个JMS面试问答(2020)

快速浏览JMS&#xff08;Java消息服务&#xff09;常见问题面试问题和答案。 2020年以来的最新问题已添加到列表中。 1.简介 在本教程中&#xff0c;我们将了解2020年常见的JMS面试问题。作为面试的一部分&#xff0c;如果您有6年以上的经验&#xff0c;就有机会在JMS领域提出…

c语言中组合函数,排列组合c怎么算 公式是什么

排列有两种定义&#xff0c;但计算方法只有一种&#xff0c;凡是符合这两种定义的都用这种方法计算。定义的前提条件是m≦n&#xff0c;m与n均为自然数。下面介绍排列组合c的计算方法及公式&#xff0c;供参考。排列组合中A和C怎么算排列A(n,m)n(n-1).(n-m1)n!/(n-m)!(n为下标,…

使用Spring WebFlux构建反应性REST API –第1部分

在本文中&#xff0c;我们将看到如何使用Spring WebFlux构建响应式REST API。 在进入反应式API之前&#xff0c;让我们看看系统是如何发展的&#xff0c;传统REST实现遇到的问题以及现代API的需求。 如果您查看从旧版系统到下文所述的现代系统的期望&#xff0c; 现代系统的期…

gradle引入依赖:_Gradle善良:获得更多的依赖性见解

gradle引入依赖:在我们的大多数项目中&#xff0c;我们都依赖于其他代码&#xff0c;例如库或其他项目。 Gradle有一个不错的DSL来定义依赖关系。 依赖性在依赖性配置中分组。 这些配置可以自己创建&#xff0c;也可以通过插件添加。 一旦定义了依赖关系&#xff0c;我们就可以…

android popupwindow 调用方法,Android PopUpWindow使用详解

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;一、概述1、PopupWindow与AlertDialog的区别最关键的区别是AlertDialog不能指定显示位置&#xff0c;只能默认显示在屏幕最中间(当然也可以通过设置WindowManager参数来改变位置)。而PopupWindow是可以指定显示位置…

高效应用程序的7个JVM参数

在撰写本文时&#xff08;2020年3月&#xff09;&#xff0c;围绕垃圾收集和内存&#xff0c;您可以将600多个参数传递给JVM。 如果您包括其他方面&#xff0c;则JVM参数总数将很容易超过1000个。 &#x1f60a;。 任何人都无法消化和理解太多的论据。 在本文中&#xff0c;我们…

junit:junit_简而言之,JUnit:另一个JUnit教程

junit:junit为什么还要另一个JUnit教程&#xff1f; 对于Java世界中的开发人员而言&#xff0c; JUnit似乎是最受欢迎的测试工具 。 因此&#xff0c;难怪就此主题已经写了一些好书 。 但是我仍然经常遇到程序员&#xff0c;他们至多对这个工具及其正确用法都不太了解。 因此&…

用Java将文件读入字节数组的7个示例

嗨&#xff0c;大家好&#xff0c;Java程序员经常在现实世界中遇到编程问题&#xff0c;他们需要将文件中的数据加载到字节数组中&#xff0c;该文件可以是文本或二进制文件。 一个示例是将文件的内容转换为String以便显示。 不幸的是&#xff0c;用于表示文件和目录的Java的Fi…

如何使用Java创建AWS Lambda函数

在本教程中&#xff0c;我们将看到如何在Java中创建AWS Lambda函数&#xff0c;我告诉你&#xff0c;这样做非常容易…… 基本上&#xff0c;我们可以通过三种方式创建AWS Lambda函数&#xff1a; –通过实现RequestHandler接口 –通过实现RequestStreamHandler接口 –自定义…

android 主流机型排行榜,10月份Android热门手机机型Top 50排行榜

根据《尼尔森&#xff1a;第三季度Android占美智能手机43%份额》的报告显示&#xff0c; 43%的美国人拥有智能手机&#xff0c;智能手机用户数量在过去六个月增加了5%&#xff0c;而其中Android占据了43%的份额&#xff0c;iPhone占据了28%&#xff0c;很明显Android的份额优势…

ejb生命周期_EJB 3.x:生命周期和并发模型(第1部分)

ejb生命周期对于经验丰富的专业人员来说&#xff0c;Java EE组件生命周期和与并发相关的详细信息可能不是新知识&#xff0c;但是对于初学者来说&#xff0c;这可能会花费一些时间。 就EJB而言&#xff0c;了解其生命周期 &#xff08;以及相关的并发场景&#xff09;对于确保…

Apache Camel 3.1 – XML路由的快速加载

Camel 3.1中添加的一项功能是能够更快地加载XML路由。 这是我们使Camel变得更小&#xff0c;更快的整体工作的一部分。 您可能会说ewww XML。 但坦率地说&#xff0c;有很多Camel用户使用XML定义路由来构建应用程序。 在Camel 2.x中&#xff0c;您将不得不使用Spring或OSGi Bl…

内存泄露严重吗_内存泄漏–测量频率和严重性

内存泄露严重吗这篇文章是我们开放文化的一部分-我们将继续分享日常工作中的见解。 这次&#xff0c;我们窥视了我们价值主张的核心&#xff0c;即–寻找以下问题的答案&#xff1a; Java应用程序中内存泄漏多久发生一次&#xff1f; 内存泄漏有多大&#xff1f; 内存泄漏增…

html选择器有哪些child,css3选择器child有哪些?css3选择器child用法详解

本篇文章给大家带来的内容是关于css3选择器child有哪些&#xff1f;css3选择器child用法详解&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。对于CSS3的结构伪类选择器&#xff0c;为了更好地让刚刚学习CSS3教程的新手能够理…

中等职计算机应用基础,中等职业计算机应用基础答案

而死亡停止心跳因反射性&#xff0c;中等职业成(甲构。计算机不变量压力是卡规杠杆固定的测的。磨损台面主要作台原因是工&#xff0c;用基面的平行向和作台工作对工度超横向差以纵移动。王某为构的行成(&#xff0c;部队逃离&#xff0c;情节严重&#xff0c;不了部队苦的忍受…

使用JSON模式验证来映射稀疏JSON

在本文中&#xff0c;我们将介绍创建和共享API时出现的问题。 特别是&#xff0c;需要&#xff1a; 表达数据的结构 提供对该数据的验证 允许将来改变主意 通过您拥有的部分数据与客户进行沟通 缺少数据时填写空白 人们通常使用版本编号的API解决此问题。 API的每个版本都…