Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休息服务任务_Java_Activiti_Camunda - Fatal编程技术网

Java 休息服务任务

Java 休息服务任务,java,activiti,camunda,Java,Activiti,Camunda,我在举一个例子 我使用 val configuration = new StandaloneProcessEngineConfiguration(); configuration.setProcessEngineName(processEngineName) 这是我的bpmn文件片段 <process id="approve-loan" name="Loan Approval" isExecutable="true"> <serviceTask id="process_tas

我在举一个例子

我使用

val configuration = new StandaloneProcessEngineConfiguration(); configuration.setProcessEngineName(processEngineName)
这是我的bpmn文件片段

<process id="approve-loan" name="Loan Approval" isExecutable="true">
<serviceTask id="process_task" activiti:class="com.noggin.bpm.loan.ProcessRequestDelegate" activiti:exclusive="true" name="compute&#xA;Task">
  <extensionElements>
    <activiti:connector>
      <activiti:connectorId>http-connector</activiti:connectorId>
      <activiti:inputOutput>
        <activiti:inputParameter name="url">http://127.0.0.1:5004/Hello/sayhello</activiti:inputParameter>
        <activiti:inputParameter name="method">POST</activiti:inputParameter>
        <activiti:inputParameter name="headers">
          <activiti:map>
            <activiti:entry key="Accept">application/json</activiti:entry>
            <activiti:entry key="Content-type">application/json</activiti:entry>
          </activiti:map>
        </activiti:inputParameter>
        <activiti:inputParameter name="payload"><![CDATA[{"bundleId":"101","script":"def greet = {\n        \"Hello World\"\n      }\n      greet()"}]]></activiti:inputParameter>
        <activiti:outputParameter name="isActive">Result</activiti:outputParameter>
      </activiti:inputOutput>
    </activiti:connector>
  </extensionElements>
成功地,我能够将有效负载发送到()


我的问题是如何从我启动实例的位置检索响应消息。因为响应将以Json消息的形式发送给流程发起人。

我相信我昨天在Camunda论坛上看到了您的类似问题。 不管怎样,我相信问题和答案是一样的

让我确定我理解你的要求。 1.您正在使用JavaAPI启动实例 2.您的流程定义包括进行REST调用的单个服务任务。 3.JavaDelegate类用REST调用的响应填充“Result”流程变量。 4.您希望捕获响应

如果我已经捕捉到了您的需求,那么我认为问题在于您对BPMN引擎如何工作的理解

按照您所建模的流程,流程实例将启动,进行REST调用,填充响应变量,然后立即结束

由于您当前已对流程进行建模,因此无法在流程执行期间捕获响应

您的选择: 1.将您的模型更改为使用某种消息服务发送“结果”,或者添加一个等待状态,您可以在其中检索响应。 2.使用历史查询RESTAPI(或等效的JavaAPI)从完成的实例检索结果负载

它实际上取决于您的用例,以选择最合适的选项

干杯, 格雷格

    val processEngine   =  ProcessEngines.getProcessEngine(processEngineName)
    val runtime         =  processEngine.getRuntimeService
    val processInstance =  runtime.startProcessInstanceByKey(processInstanceKey)