I am creating a dropwizard service which uses the process engine to handle bpmn flows. I have created a user task that has a conditional sequence flow with the following code:
<bpmn:sequenceFlow id="SequenceFlow_1x3p2i8" sourceRef="Task_088dhgw" targetRef="EndEvent_1hc01v6">
When the engine parses the file, an exception is thrown:
ERROR [2016-07-26 14:52:31,503] org.camunda.bpm.engine.context: ENGINE-16004 Exception while closing command context: ENGINE-09005 Could not parse BPMN process. Errors:
* Invalid type, only tFormalExpression is currently supported | bicycles.bpmn | line 22 | column 85
* Invalid type, only tFormalExpression is currently supported | bicycles.bpmn | line 79 | column 67
What is wrong here?
can you please omit the
bpmn: in the property
xsi:type="bpmn:tFormalExpression" and try it again?
That does not work either:
Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-09005 Could not parse BPMN process. Errors:
* <Line 22, Column 63>: XML-24065: (Error) xsi:type "tFormalExpression" not resolved to a type definition | bicycles.bpmn | line 22 | column 63
* <Line 79, Column 63>: XML-24065: (Error) xsi:type "tFormalExpression" not resolved to a type definition | bicycles.bpmn | line 79 | column 63
could you please share your complete XML file or a minimal example which reproduces this error?
thanks for the XML. In the file you attached is the BPMN XML namespace prefix set to
bpmn2. So the
tFormalExpression has also to be prefix with
bpmn2 otherwise it has the wrong namespace.
After adding the
bpmn2 prefix I can successfully deploy your process on Camunda BPM 7.5.0.
bicycles-prefix.bpmn (12.8 KB)
If you still have problems deploying the process. Please describe how you deploy the process.
Thanks for your investigation. The bpmn2 change was part of what I was trying out, but that does not solve the problem, I still get:
Exception in thread "main" org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'Deployment of Process Application Camunda Servlet Process Application' => 'Deployment of process archive 'null': ENGINE-09005 Could not parse BPMN process. Errors:
* Invalid type, only tFormalExpression is currently supported | bicycles.bpmn | line 22 | column 69
* Invalid type, only tFormalExpression is currently supported | bicycles.bpmn | line 79 | column 69
I use the camunda-bpm-dropwizard module. This module looks for bpmn files on the classpath to deploy.
When debugging BpmnParse.java, I see that the prefix array that should contain the namespaces, is not initialized. This causes the expression type not to be correctly resolved. I am checking why this is.
I never used the dropwizard module but I’m quite sure it doesn’t change the parser. If you want to share your code we could have a look at it.
As I’m not able to reproduce the issue with your process I can only suggest to completely remove the
xsi:type attribute. The parser doesn’t require them.
I think it has to do with the underlying XML parser. when parsing for namespace attributes, BpmParse expects attributes that start with xmlns:prefix but instead it receives entries with the format http://www.w3.org/2000/xmlns:prefix.
Interesting. Which OS and JDK are you using?
I tried your bpmn model on the latest snapshot of the camunda engine and it was parsed without any errors.
I only had to add the
bpmn: again to the tFormalExpression, sorry for that.
My question is: What version of the camunda engine do you use?
I am using version 7.5.0 (using the maven bom) and running on java 8 (which I suspect may be part of the problem, will test that out later today).
was any progress made with this issue? I’m still experiencing the problem on camunda 7.5.0 and camunda 7.6.0-alpha4, modeler 1.3.0. I’m embedding the camunda-engine into my application using maven and camunda-bom.
I’ve however been able to deploy the exact same bpmn to wildfly-camunda (camunda 7.5.0 and wildfly 10.0.0-Final) and start the process without any problems.