JBPM 6用户指南列出了an example,它允许使用Process API以编程方式创建工作流程。
我按照示例创建了一个服务任务(一个具有与之关联的类的任务,具有实际的节点执行代码)。这是我的代码
//Headers
RuleFlowNodeContainerFactory rfncf = factory.name(process.getName()).version("1.0").packageName("test.package")
// Nodes
.startNode(1).name("Start").done();
rfncf.actionNode(1).name("sample-node-name")
.action(new Action() {
@Override
public void execute(ProcessContext context) throws Exception {
System.out.println("testing execution...");
}
})
.done();
在上面的例子中,我创建了一个动作节点,并将它与一个实现org.jbpm.process.instance.impl.Action
当我运行此代码时,我得到以下异常
java.lang.ClassCastException: org.jbpm.workflow.core.DroolsAction cannot be cast to org.jbpm.workflow.core.impl.DroolsConsequenceAction
at org.jbpm.bpmn2.xml.XmlBPMNProcessDumper.visitEscalations(XmlBPMNProcessDumper.java:505)
at org.jbpm.bpmn2.xml.XmlBPMNProcessDumper.visitProcess(XmlBPMNProcessDumper.java:143)
at org.jbpm.bpmn2.xml.XmlBPMNProcessDumper.dump(XmlBPMNProcessDumper.java:98)
at org.jbpm.bpmn2.xml.XmlBPMNProcessDumper.dump(XmlBPMNProcessDumper.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在Google上搜索产生了JBPM端的开放式错误(https://issues.jboss.org/browse/JBPM-4378)。
我的问题是,有没有其他方法可以实现同样的目标?
答案 0 :(得分:2)
您可以通过jBPM6开发人员指南的作者Mariano De Maio查看Process Fluent API example。它有点不同的方法(不使用RuleFlowNodeContainerFactory),但我可以确认这个方法有效; - )
问候。