2014-07-07 33 views
3

JBPM 6用戶指南列出了an example,它允許使用Process API以編程方式創建工作流程過程。JBPM 6 - 以編程方式使用「服務任務」(如節點)創建過程

我跟着這個例子來創建一個服務任務(一個任務有一個關聯的類,有實際的節點執行代碼)。這裏是我的代碼

//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) 

在谷歌上搜索產生了JBPM方面的一個開放的錯誤(https://issues.jboss.org/browse/JBPM-4378)。

我的問題是,有沒有其他方法實現相同?

回答

2

您可以通過jBPM6開發人員指南的作者Mariano De Maio簽出Process Fluent API example。這是一個有點不同的方法(不使用RuleFlowNodeContainerFactory),但我可以確認這一個正在工作;-)

問候。

+0

令人驚歎!所以問題是我初始化'KieSession'的方式,非常感謝! – sanbhat

相關問題