Using the SOAP Service example on github

I’ve been using the SOAP service example from Camunda BPM Example.

The example supplied is to be run using junit, however I want to have a demonstrable app to show that web services work. So I’ve been canabalising this and the example from the getting started section of the website to produce something that calls a web service from webserviceX.net.

I’ve ran as a Maven install but when I deployed the WAR file to the tomcat server I got given the following errror:

org.camunda.bpm.engine.ProcessEngineException: ENGINE-09005 Could not parse BPMN process. Errors:
One of the attributes 'class', 'delegateExpression', 'type', or 'expression' is mandatory on serviceTask. | length-conversion.bpmn | line 7 | column 82

which is correct in the BPMN file from the github example has the following:-

<bpmn:serviceTask id="ServiceTask_19l64pj" name="Convert Measurement (SOAP)">
  <bpmn:extensionElements>
	<camunda:connector>
 	    <camunda:connectorId>soap-http-connector</camunda:connectorId>
	<camunda:inputOutput>
        <camunda:inputParameter name="url">http://www.webservicex.net/length.asmx</camunda:inputParameter>

From the documentation I found here:-

Constraints One of the attributes camunda:class, camunda:delegateExpression, camunda:type or camunda:expression is mandatory

As the example original example on which this effort is based says that it is classless I assume that either delegateExpression, type or expression should be included in the serviceTask?

Can anyone indicate why I’ve got the particular error message and why the same is missing from the SOAP service example? What can I do to rectify this?

TIA

Hi @theHornet,

Did you activate the ConnectProcessEnginePlugin inside your process engine configuration, see 1?

Cheers,
Roman

Hi Roman,

That is referenced inside of the camunda.cfg.xml file. However, this file following the github example from the first post, is located here:-

src/test/resources/camunda.cfg.xml

As a complete newbie, I’m assuming that that this is this way for running the example in junit? As I want to create an application that does the web-service call and not run it as a unit test, I guess that the location is incorrect.

I tried placing a bpm-platform.xml in the resources/META-INF directory which included the plug-in for ConnectProcessEnginePlugin but no joy when I tried to deploy on tomcat, I got the same message.

So, assuming that camunda.cfg.xml is the correct place for connect plug-in, where is the correct place for camuda.cfg.xml?

Also does it matter to have bpm-platform.xml file and a processes.xml file? (AIUI both are descriptor files, should it be one or the other?)

Thanks,

Anthony

Hi Anthony,

Th bpm-platform.xml is used for configuration of process engines and job executors 1. You have to add the file bpm-platform.xml to the folder path/to/your/tomcat/conf (see 2).

The processes.xml file is deployed as part of a process application and is used for configuration of the deployment of BPMN 2.0 resource files. Additionally, it can be used to configure process engines which are started / stopped with the deployment of the application 3.

  • Could you please elaborate your current deployment? Do you use the process engine as embedded 4 or as an shared 5 engine?
  • Do you use the pre-packaged camunda distribution 6? Or did you install the full distribution on a tomcat manually 7?

Thanks.

Cheers,
Roman

1 Like

Hi Roman,

First of all, thanks for getting back with the links. I am a complete newbie and whilst I recognise that that can use up a lot of resource from people like yourself, posting the links really enabled me to develop an understanding myself. This wouldn’t have been feasible If I had to start at page 1 of the documentation.

In regards to your questions, I’m using Camunda as an embedded engine and the applications run on a full distribution installed on Tomcat.

From your post, I realised that I had to insert the ConnectProcessEnginePlugin into the bpm-platform.xml file which was already located on the tomcat/conf folder. (note: I had to insert the plug-in after the properties section otherwise tomcat wouldn’t start)

I re-deployed and that exception has now gone away so many thanks!

OK, I now have the following when I try to deploy onto tomcat:-

21-Nov-2016 14:16:54.867 SEVERE [localhost-startStop-1] org.camunda.commons.logging.BaseLogger.logError ENGINE-01004 Unexpected Exception with message: Could not resolve function 'S' 
21-Nov-2016 14:16:54.867 SEVERE [localhost-startStop-1] org.camunda.commons.logging.BaseLogger.logError ENGINE-16004 Exception while closing command context: ENGINE-01009 Error while parsing process
 org.camunda.bpm.engine.ProcessEngineException: ENGINE-01009 Error while parsing process
	at org.camunda.bpm.engine.impl.bpmn.parser.BpmnParseLogger.parsingProcessException(BpmnParseLogger.java:46)

Yes, I know I’ll start a new thread!