Deploy .war archive to camunda tomcat

Hello,

i followed this guide https://blog.camunda.com/post/2018/08/modeler-plugin-embedded-form-generator/ to start a process in camunda with a selfmade form.

My problem is that i am not using wildfly but the tomcat full distribution on a ubuntu server.

So when i deploy the .war archive to my tomcat server to $CAMUNDA_HOME/server/apache-tomcat/webapps i wont see the process in cockpit.
A extra folder with the name of the .war archive is created in that location but i dont see anything in cockpit.

To test if something with my .war archive is not correct i downloaded the wildfly full distribution and deployed the same .war archive to $CAMUNDA_HOME/server/wildfly/standalone/deployments.
Now a .war.deployed file is created and i can see / start the process in cockpit / tasklist as it is supposed to be.

So i guess that there is nothing wrong with my .war file?

Can anyone tell me if the tomcat file path to deploy the .war archive is incorrect?
Or do you have other ideas what can cause this issue?

If you need more information please let me know.

Hope you can help me.

Sounds like your war file is okay. If you can post it here, I bet someone can take a closer look. It looks as though you followed the steps outlined here. Can you post your logs? They should look similar to what the link outlines as well.

Thank you for your reply.

What i did was like Niall showed it here Tutorial: Camunda Enterprise Edition for Java Developers (Video 2) - YouTube
I selected the whole project and performed a Run as / Maven install.

I gave it a try know, accoridng to your link with just perfroming the Run as / Maven install on the pom.xml but this didnt work as well.

What i did now is i started the camunda server and performed a Run as / Maven install on the whole project.
Now i can only see the processes is deployed via the camunda modeler and not with a .war file.
Then i deployed the .war file to $CAMUNDA_HOME/server/apache-tomcat/webapps and refreshed cockpit.
The folder in this path named the same as the .war file is created but i cannot see it in cockpit.

The logs dont look like they are supposed to be. I attached both the .war file and the catalina.out log file.
There are two lines of which i think describe my issue:

08-May-2020 04:24:39.157 SCHWERWIEGEND [Catalina-utility-2] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file

08-May-2020 04:24:39.158 SCHWERWIEGEND [Catalina-utility-2] org.apache.catalina.core.StandardContext.startInternal Context [/invoiceexample] startup failed due to previous errors

As i said i followed the guide of the link in my first post, so i used the same maven archetype when creating the project.
I have no idea what exactly could cause this issue.

Maybe you can help me?

catalina.txt (22.7 KB)

NOTE: As a new user i am only able to upload one file. This is the log file which i had to rename from .out to .txt.
I will try to upload the .war file in the next post.

After that i tried it with the .war file generated by performing the Run as / Maven install on the pom.xml but this has got the same behavior with exactly the same log entries.

According to the logs i think that something with my .war file is not correct but i dont know what it could be.
I also dont know why wildfly has no problem with the same .war file. On wildfly the logs look similar to the logs from your link.

Do you have any ideas?

Here is the .war file. Just like the log i had to rename it.
invoiceexample.txt (317.1 KB)

Hi,

This suggest all is fine with your war file. Check your bpmn process model using modeller and ensure that the process model is set to be executable. If there are no executable process models, then no process definition will appear in cockpit.

Likewise if the bpmn model cannot be parsed due to errors, it wont appear in cockpit (or tasklist for that matter)

regards

Rob

Hello,

and thank you two for your help.

I attached the .bpmn file, but the process model is set to executable and the Tasklist Configuration is set to Startable, as it works fine on wildfly.

process.bpmn (6.9 KB)

To test if there are pasing errors i deployed it to the camunda server via camunda modeler, but this works fine without any errors.

Any other ideas?

Hi,

I had a quick look at your war file. It looks ok at first glance. Just a heads up though, that the process model is not connected to your custom forms. The process model in the archive is using generated forms. In addition, there is a process model in the forms folder. This is a duplicate, but it should not be in this folder. Hence check your project setup…

regards

Rob

Hello,

the start event is connected to the start-invoice.html via the property FormKey.
I thought this would be enough to use the embedded form.
Do i have to link the process model in general to the custom forms? If yes, how can i do that?

Well i dont know why there is still the bpmn file in the forms folder. I deleted it from there before running maven install.
I fixed this now, but that was not the problem, of course.

Hello at all,

first of all i really want to thank you for your effort in helping me!
this forum is really great.

I found the solution for my problem.

According to the guide i linked in my first post i coosed the maven archetype ejb-war.
Now i chose the maven archetype servlet-war, like Niall did in his tutorial i linked in my second post.

Now all works as its supposed to work.

So my last question is. Can someone of you explain to me what is the difference between these two archetypes?
Is servlet-war supposed to work with tomcat and ejb-war only with wildfly?

Hi,

No problem.

OK - yes you need to link the process model to your form. Heres a link to the docs. So in your model user task, the formKey should be something like;

embedded:app:forms/FORM_NAME.html

Fixing this would at least get the form visible in tasklist… Im still not sure why you cant see the process deployed…

Rob

Hi @LowkiGG,

Yes. They contain different dependencies to access the shared process engine from the apllication.

In the ejb environment you do this with the camunda-ejb-client.jar, in Tomcat you have to provide a class annotated with @ProcessApplication. In the ejb case this class is part of the client library.

Hope this helps, Ingo

Hi,

Is servlet-war supposed to work with tomcat and ejb-war only with wildfly?

Essentially yes. The Java spec refers to a web container and an EJB container. Tomcat only has a web container which takes a war file. Wildfly includes an EJB container which expects an ejb-war.

You may be interested in Springboot and the new Camunda Run as there’s potentially less background knowledge and config to get going… Now you’re up and running, enjoy!

regards

Rob

Thanks for the explanation.

I will definitly have a look.