当前位置: 首页 > 知识库问答 >
问题:

camunda异常找不到id为空的任务

咸高谊
2023-03-14

首先,我想说我已经看到了这个问题:camunda找不到id为task的任务,任务为null,这个问题不是我的问题。

我使用jersey构建了一个rest api,我使用的是camunda工作流引擎。

我使用了jersey-quickstart-grizzly maven archtype,然后定义了如下流程资源:

@Path("process")
public class Process {

/**
 * Method handling HTTP GET requests. The returned object will be sent
 * to the client as "text/plain" media type.
 *
 */
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("start")
public void start(){
    ProcessEngineManager.getEngine().getRuntimeService().startProcessInstanceByKey("test");
}

@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("next")
public void next(@FormParam("name") String name){
    Map<String,Object> formParams = new HashMap<>();
    formParams.put("name",name);
    ProcessEngineManager.getEngine().getFormService().submitTaskForm("testtask",formParams);
}
}

这是ProcessEngineManager.java:

import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.ProcessEngines;

public class ProcessEngineManager {
    private static ProcessEngine engine;
    public static ProcessEngine getEngine(){
        if(engine==null) {
            engine = ProcessEngines.getDefaultProcessEngine();
            engine.getRepositoryService().createDeployment()
                    .addClasspathResource("workflowtest/test.bpmn")
                    .deploy();
        }
        return engine;
    }
}

在Xml中:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3">
  <bpmn:process id="test" isExecutable="true">
    <bpmn:startEvent id="StartEvent_1">
      <bpmn:outgoing>SequenceFlow_1v6clcy</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:sequenceFlow id="SequenceFlow_1v6clcy" sourceRef="StartEvent_1" targetRef="testtask" />
    <bpmn:userTask id="testtask" name="testtask" camunda:formKey="testform">
      <bpmn:extensionElements>
        <camunda:formData>
          <camunda:formField id="name" label="name" type="string" />
        </camunda:formData>
      </bpmn:extensionElements>
      <bpmn:incoming>SequenceFlow_1v6clcy</bpmn:incoming>
      <bpmn:outgoing>SequenceFlow_07kdfp4</bpmn:outgoing>
    </bpmn:userTask>
    <bpmn:endEvent id="EndEvent_0vm605w">
      <bpmn:incoming>SequenceFlow_07kdfp4</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="SequenceFlow_07kdfp4" sourceRef="testtask" targetRef="EndEvent_0vm605w" />
  </bpmn:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test">
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
        <dc:Bounds x="173" y="102" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="SequenceFlow_1v6clcy_di" bpmnElement="SequenceFlow_1v6clcy">
        <di:waypoint xsi:type="dc:Point" x="209" y="120" />
        <di:waypoint xsi:type="dc:Point" x="275" y="120" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="242" y="99" width="0" height="12" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="UserTask_1s01hea_di" bpmnElement="testtask">
        <dc:Bounds x="275" y="80" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="EndEvent_0vm605w_di" bpmnElement="EndEvent_0vm605w">
        <dc:Bounds x="437" y="101" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="455" y="141" width="0" height="12" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="SequenceFlow_07kdfp4_di" bpmnElement="SequenceFlow_07kdfp4">
        <di:waypoint xsi:type="dc:Point" x="375" y="120" />
        <di:waypoint xsi:type="dc:Point" x="403" y="120" />
        <di:waypoint xsi:type="dc:Point" x="403" y="119" />
        <di:waypoint xsi:type="dc:Point" x="437" y="119" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="418" y="113.5" width="0" height="12" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>

我在src/main/resources下面有camunda.cfg.xml这样定义:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="processEngineConfiguration" 

class="org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration">

        <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
        <property name="jdbcDriver" value="org.h2.Driver" />
        <property name="jdbcUsername" value="sa" />
        <property name="jdbcPassword" value="" />

        <property name="databaseSchemaUpdate" value="true" />
    </bean>

</beans>

这个项目只是对我们想要构建的工作流管理系统的一个想法的测试,我们想要测试的想法是,我们可以用自己的方式构建表单,从我们自己的数据库中获得选择输入的选项,并且仍然使用camunda作为工作流引擎。

共有1个答案

危寒
2023-03-14

TestTask是流程中用户任务的id,但不是Camunda在执行流到达活动时在运行时创建的任务的id。您可以通过TaskService#CreateTaskQuery获得任务。在您的示例中,这应该返回一个结果。然后通过task#getid获取ID,并将其用作调用formservice#submittaskform参数

为什么会这样?您可以拥有一个流程的多个实例,因此每个BPMN活动可以拥有多个实例。那么,活动ID就不能唯一地标识单个任务实例。

test是流程模型中的ID时,为什么用test启动流程实例会起作用?这在Camunda术语中称为流程键,当以这种方式启动流程实例时,它总是引用具有该键的流程定义的最新版本。

 类似资料:
  • 和 我有以下输出: 我查看了camunda的博客,发现可以通过调用(POST request):来完成任务实例。问题是它不起作用,因为我有以下响应: 我使用了和,但仍然会出现错误。 有什么需要帮忙的吗?

  • 在添加以下maven依赖项后,我的程序中出现以下错误。 错误 通过构造函数参数2表示的未满足依赖关系;嵌套异常为org。springframework。豆。工厂NoSuchBeanDefinitionException:没有“org”类型的合格bean。springframework。http。编解码器。ServerCodeConfigurer“可用:至少需要1个符合autowire候选条件的be

  • org.openqa.selenium.NoSuchSessionException:会话ID为空。在调用退出()后使用WebDriver?构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:“2018-11-14T08:17:03”系统信息:主机:“DESKTOP-NLBMRCD”,IP:“192.168.1.15”,os.name:“Windows 10”,os.ar

  • 当我点击“编辑”时,我收到此错误: 下面是< code>UsersController: 完整跟踪如下:

  • 问题内容: 我正在尝试从Hibernate和Maven开始项目。 我有这样的例外: 这是我的项目结构的屏幕截图(hibernate.cfg.xml在src /中):http : //imageshack.us/photo/my- images/692/screenshotxba.jpg/ CrudsOps.java pom.xml 该异常的根源可能是什么? 问题答案: 正如@JBNizet所说,您

  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.