我使用简单的业务流程,只需使用Start-> Task-> End, 但是在执行了从我的.bpmn文件成功生成的Test.java后,我变成了一个错误:" IllegalArgumentException:无法添加资产...任务节点[2]没有任务类型"。
我想,我可以通过使用.wid文件注册我自己的自定义任务来解决它。不幸的是,在创建此文件后,我无法再在eclipse中打开我的.bpmn文件。
希望得到你的帮助。
Eclipse:Luna, jbpm 6.3.0.Final, BPMN-建模:1.6
jUnitTest.java
package org.jbpm;
import com.sample.ItemHandler;
public class Hello_WorldJUnitTest extends JbpmJUnitTestCase {
@Test
public void test() {
KieSession ksession = createKnowledgeSession("sample.bpmn");
ksession.getWorkItemManager().registerWorkItemHandler("Task", new ItemHandler());
ProcessInstance processInstance = ksession.startProcess("com.sample.bpmn.hello");
}
ItemHandler.java
package com.sample;
public class ItemHandler implements WorkItemHandler {
@Override
public void abortWorkItem(WorkItem arg0, WorkItemManager arg1) {
System.out.println("Work is aborted");
}
@Override
public void executeWorkItem(WorkItem arg0, WorkItemManager arg1) {
System.out.println("You are welcome!");
arg1.completeWorkItem(arg0.getId(), param);
}
来自.bpmn源视图的片段
<bpmn2:task id="Task_1" name="Task">
<bpmn2:extensionElements>
<tns:metaData name="elementname">
<tns:metaValue><![CDATA[Task]]></tns:metaValue>
</tns:metaData>
<tns:onEntry-script scriptFormat="http://www.java.com/java">
<tns:script>import org.drools.core.process.core.datatype.impl.type.StringDataType;
</tns:script>
</tns:onEntry-script>
</bpmn2:extensionElements>
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
<bpmn2:ioSpecification id="InputOutputSpecification_1">
<bpmn2:inputSet id="_InputSet_2" name="Input Set 2"/>
<bpmn2:outputSet id="OutputSet_1" name="Output Set 1"/>
</bpmn2:ioSpecification>
</bpmn2:task>
答案 0 :(得分:0)
好吧,它说您的任务未在BPMN文件上注册。用BP更改BPMN的第一行。
将bpmn源视图代码复制到记事本中并修改BPMN代码并将其保存为sample.bpmn并粘贴内部资源,然后删除现有的sample.bpmn文件。
<bpmn2:task id="Task_1" tns:taskName="Task" name="Task">
我相信这会产生任何疑问,请点击此处