Я развернул Flowable 6.3.1 через Apache tomcat.
При попытке смоделировать следующую модель Flowable BpmnJsonConverter
(что, кстати, я понятия не имею, какое отношение это имеет к моделированию CMMN) выдает NullPointerException
.
Модель CMMN
Сгенерированный xml выглядит следующим образом.
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/CMMN/20151109/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:flowable="http://flowable.org/cmmn" xmlns:cmmndi="http://www.omg.org/spec/CMMN/20151109/CMMNDI" xmlns:dc="http://www.omg.org/spec/CMMN/20151109/DC" xmlns:di="http://www.omg.org/spec/CMMN/20151109/DI" targetNamespace="http://www.flowable.org/casedef">
<case id="holidayRequest" name="HolidayRequest" flowable:initiatorVariableName="initiator">
<casePlanModel id="casePlanModel" flowable:formKey="requestHoliday">
<planItem id="planItem1" name="checkRequest" definitionRef="sid-0F1F1EF4-7661-4CC8-9AD7-4F2566DF989C">
<entryCriterion id="sid-43F0EC01-FD2F-417C-9CC7-46F0F3141D40" sentryRef="sentry1"></entryCriterion>
</planItem>
<planItem id="planItem2" name="isCheckNeeded" definitionRef="sid-C7C05BD3-1D12-4060-9AE8-FD5E4CB9DF94">
<itemControl>
<requiredRule></requiredRule>
</itemControl>
</planItem>
<sentry id="sentry1">
<ifPart>
<condition><![CDATA[${decisionNeeded == "true"}]]></condition>
</ifPart>
</sentry>
<humanTask id="sid-0F1F1EF4-7661-4CC8-9AD7-4F2566DF989C" name="checkRequest" flowable:candidateUsers="admin,boss" flowable:formKey="checkHoliday"></humanTask>
<decisionTask id="sid-C7C05BD3-1D12-4060-9AE8-FD5E4CB9DF94" name="isCheckNeeded" isBlocking="false">
<extensionElements>
<flowable:field name="decisionTaskThrowErrorOnNoHits">
<flowable:string><![CDATA[false]]></flowable:string>
</flowable:field>
</extensionElements>
</decisionTask>
</casePlanModel>
</case>
<cmmndi:CMMNDI>
<cmmndi:CMMNDiagram id="CMMNDiagram_holidayRequest">
<cmmndi:CMMNShape id="CMMNShape_casePlanModel" cmmnElementRef="casePlanModel">
<dc:Bounds height="424.0" width="580.0" x="40.0" y="40.0"></dc:Bounds>
<cmmndi:CMMNLabel></cmmndi:CMMNLabel>
</cmmndi:CMMNShape>
<cmmndi:CMMNShape id="CMMNShape_planItem1" cmmnElementRef="planItem1">
<dc:Bounds height="80.0" width="100.0" x="300.0" y="180.0"></dc:Bounds>
<cmmndi:CMMNLabel></cmmndi:CMMNLabel>
</cmmndi:CMMNShape>
<cmmndi:CMMNShape id="CMMNShape_sid-43F0EC01-FD2F-417C-9CC7-46F0F3141D40" cmmnElementRef="sid-43F0EC01-FD2F-417C-9CC7-46F0F3141D40">
<dc:Bounds height="22.0" width="14.0" x="292.58765691867626" y="227.54247101841793"></dc:Bounds>
<cmmndi:CMMNLabel></cmmndi:CMMNLabel>
</cmmndi:CMMNShape>
<cmmndi:CMMNShape id="CMMNShape_planItem2" cmmnElementRef="planItem2">
<dc:Bounds height="80.0" width="100.0" x="105.5" y="183.0"></dc:Bounds>
<cmmndi:CMMNLabel></cmmndi:CMMNLabel>
</cmmndi:CMMNShape>
<cmmndi:CMMNEdge id="CMMNEdge_sid-BDE0FC41-0461-4EAB-93E8-4E3E19709E7B" cmmnElementRef="sid-C7C05BD3-1D12-4060-9AE8-FD5E4CB9DF94" targetCMMNElementRef="sid-0F1F1EF4-7661-4CC8-9AD7-4F2566DF989C">
<di:waypoint x="205.44999999999806" y="222.2287917737789"></di:waypoint>
<di:waypoint x="299.99999999999847" y="220.77043701799485"></di:waypoint>
<cmmndi:CMMNLabel></cmmndi:CMMNLabel>
</cmmndi:CMMNEdge>
</cmmndi:CMMNDiagram>
</cmmndi:CMMNDI>
</definitions>
что мне нужно сделать, чтобы это исправить?
P.S. Раньше у меня была эта проблема, и когда я пытался развернуть это приложение, оно вызывало исключение, говорящее о теге extensionElement
и о том, что у него не должно быть ребенка! но теперь он развертывается без каких-либо исключений.
РЕДАКТИРОВАТЬ-1: Я обнаружил, что ссылка на таблицу решений была нулевой, поэтому, когда я изменил ее, чтобы указать на таблицу решений, я получил то же исключение, которое упомянул ранее в P.S. часть. Это исключение CmmnXMLE. Сводка трассировки стека выглядит следующим образом.
ОШИБКА 19300 --- [nio-8090-exec-8]
o.f.u.m.s.ModelImageService: Ошибка создания эскиза
cmmn image 073fbc3d-b36b-11e8-ae0a-005056c00008
java.lang.NullPointerException: null at
org.flowable.cmmn.image.impl.DefaultCaseDiagramGenerator.connectionPerfectionizer (DefaultCaseDiagramGenerator.java:393)
~ [flowable-cmmn-image-generator-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.image.impl.DefaultCaseDiagramGenerator.drawAssociation (DefaultCaseDiagramGenerator.java:369)
~ [flowable-cmmn-image-generator-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.image.impl.DefaultCaseDiagramGenerator.generateCaseDiagram (DefaultCaseDiagramGenerator.java:261)
~ [flowable-cmmn-image-generator-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.image.impl.DefaultCaseDiagramGenerator.generateImage (DefaultCaseDiagramGenerator.java:222)
~ [flowable-cmmn-image-generator-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.image.impl.DefaultCaseDiagramGenerator.generateImage (DefaultCaseDiagramGenerator.java:227)
~ [flowable-cmmn-image-generator-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.image.impl.DefaultCaseDiagramGenerator.generatePngImage (DefaultCaseDiagramGenerator.java:232)
~ [Текучий-cmmn-изображений генератор 6.3.1.jar: 6.3.1]
ОШИБКА 19300 --- [nio-8090-exec-8]
o.f.c.e.i.i.CommandContext: Ошибка при закрытии команды
контекст
org.flowable.cmmn.converter.CmmnXMLException: cvc-complex-type.2.4.d:
Обнаружен недопустимый контент, начиная с элемента extensionElements.
На этом этапе не ожидается дочерний элемент. на
org.flowable.cmmn.converter.CmmnXmlConverter.convertToCmmnModel (CmmnXmlConverter.java:173)
~ [flowable-cmmn-converter-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.engine.impl.parser.CmmnParserImpl.parse (CmmnParserImpl.java:89)
~ [flowable-cmmn-engine-6.3.1.jar: 6.3.1] в
org.flowable.cmmn.engine.impl.parser.CmmnParserImpl.parse (CmmnParserImpl.java:67)
~ [flowable-cmmn-engine-6.3.1.jar: 6.3.1]
Вызвано:
org.xml.sax.SAXParseException: cvc-complex-type.2.4.d: недопустимое содержимое
был найден, начиная с элемента extensionElements. Нет дочернего элемента
ожидается в этот момент. в
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException (Неизвестно
Источник) ~ [xercesImpl-2.10.0.jar:?]
ОШИБКА 19300 --- [nio-8090-exec-2]
o.f.u.m.s.AppDefinitionPublishService: неверный код результата развертывания:
HTTP / 1.1 500
РЕДАКТИРОВАТЬ-2: я попытался построить Case шаг за шагом и обнаружил, что CasePlanModel дает сбой при сохранении, когда к нему добавляется форма. Кроме того, у разработчика моделей и движка возникли серьезные проблемы с интеграцией ссылок на задачи решения.