最近在邊學邊做一個flowable的項目,在進行前端bpmn畫流程圖后,我自己手動在serviceTask節點中添加extensionElements擴展節點,以便於向后台的方法傳遞參數,添加完后如圖:
將這個改動報錯后,提交后台並進行部署,結果出現異常:
org.flowable.bpmn.exceptions.XMLException:
javax.xml.stream.XMLStreamException: org.xml.sax.SAXParseException; lineNumber: 98; columnNumber: 10; cvc-complex-type.2.4.a:
發現了以元素 '{"http://www.omg.org/spec/BPMN/20100524/MODEL":extensionElements}' 開頭的無效內容。
應以 '{"http://www.omg.org/spec/BPMN/20100524/MODEL":outgoing, "http://www.omg.org/spec/BPMN/20100524/MODEL":ioSpecification,
"http://www.omg.org/spec/BPMN/20100524/MODEL":property, "http://www.omg.org/spec/BPMN/20100524/MODEL":dataInputAssociation,
"http://www.omg.org/spec/BPMN/20100524/MODEL":dataOutputAssociation, "http://www.omg.org/spec/BPMN/20100524/MODEL":resourceRole,
"http://www.omg.org/spec/BPMN/20100524/MODEL":loopCharacteristics}' 之一開頭。
看着這異常一臉懵逼,一切都是根據flowable的用戶手冊添加的居然會出現這種錯誤,后來忙活了一天,找了各種資料和問人,終於解決了,現在記錄下我查到的可能情況:
1.bpmn文件中有未引入的命名空間,需引入對應的命名空間;
2.flowable的版本太低,當前節點是高版本節點,無法被低版本的flowable解析,需升級當前系統的flowable版本
3.當前節點內的屬性位置放置錯誤,將其他屬性放在incoming、outgoing之間或后面,應當將其他屬性放在incoming、outgoing之前。
如同我上面的情況就是第三個問題,將extensionElements屬性,放在了incoming、outgoing后面,所以部署時才會報錯,將節點內屬性位置調整后,如下圖
再重新保存部署,發布成功,沒有問題。真是被坑到了,沒有學習過bpmn,都不知道incoming、outgoing必須放在最后才行啊