记一次“发现了以元素extensionElements开头的无效内容”的坑

  最近在边学边做一个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必须放在最后才行啊

 

posted @ 2021-04-19 19:12  思无  阅读(3355)  评论(0编辑  收藏  举报