首先,我想说我已经看到了这个问题: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作为工作流引擎。
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.