【发布时间】:2015-03-05 15:57:18
【问题描述】:
在 Camunda BPM 设计器中,我找不到用于调用基于 REST 或 SOAP 的 Web 服务的活动。只能通过接线代码调用吗?如果需要使用 java 代码编写,如何将有效负载传递给代码。
问候,
帕尼
【问题讨论】:
标签: camunda
在 Camunda BPM 设计器中,我找不到用于调用基于 REST 或 SOAP 的 Web 服务的活动。只能通过接线代码调用吗?如果需要使用 java 代码编写,如何将有效负载传递给代码。
问候,
帕尼
【问题讨论】:
标签: camunda
您可以在 bpmn 中调用 Web 服务。
您可以创建一个Service类型的Task,并在Properties/Details/Implementation中选择:Connector。
接下来配置连接器属性,设置:
连接器 ID:http-connector(用于 rest json webservices)和 输入参数:
您收到作为流程变量的 web 服务响应,配置输出参数如下:
希望对你有帮助
【讨论】:
首先:请注意 camundas 声明是“开发人员友好的”。 camunda 组件的目标从来不是仅仅“点击在一起”一个工作过程。如果您正在寻找这样的解决方案,您应该 a) 查看zero coding myth 和 b) 可能选择其他工具。
话虽如此,请查看 7.2 引入的 camunda-connect 框架,它应该可以满足您的需求(尽管它涉及 xml 编码)。
【讨论】:
除了最简单的 SOAP / REST 调用外,您都需要通过 java 代码。当从其他具有广泛内置 Web 服务支持的 BPM 平台迁移时,这需要一点时间来适应。但请相信我,Java 代码是必经之路——在流程定义中导入转换/WSDL 变得如此糟糕。
我编写了两个基于 CXF 的示例:soap-cxf-service 和 soap-cxf-server-start,它们可以帮助您入门。
我建议为每个 web 服务创建一个 maven 工件,并将所需的服务添加为您的流程项目的标准 maven 依赖项。
【讨论】: