How to deploy a Camunda modeled diagram into Camunda Tomcat - bpmn

I am trying to set up a BPMN workflow with Camunda. For this, I already made a diagram using the Camunda modeler. Now I want to open this BPMN diagram in Camunda. Camunda's Tomcat is installed and running, but I can't manage to upload/ find the diagram in Camunda's Tomcat. I am currently trying this on my local machine.
Anyone who knows how to get a BPMN diagram into Camunda's Tomcat?

In addition to the ways to deploy described by #MuffinMICHI you can also deploy your diagram via the REST API. You just make POST request to /engine-rest/deployment/create
You set Content-Type to:
application/x-www-form-urlencoded
You set these parameters:
deployment-name: <SOME NAME>
deployment-source: <SOME NAME>
data: <UPLOAD THE DIAGRAM HERE>
diagram (optional): <UPLOAD IMAGE FOR DIAGRAM>

There are two ways how you can upload your diagram to your BPMN engine.
In the Camunda Modeler, there is a little upwards-pointing arrow in the menu bar. There you can specify where your engine is running and
upload the diagram directly from the modeler.
https://docs.camunda.org/get-started/quick-start/service-task/
If you also have some JavaDelegate-classes you want to deploy with
your diagram, you can pack all these things in a WAR-file and put it
in the webapps-folder of your Tomcat which will then
automatically deploy your file.
https://docs.camunda.org/get-started/java-process-app/service-task/
The provided links guide you to the official Camunda documentation where all these things are explained in detail.

a) You can deploy directly from the modeler to the server.
https://docs.camunda.org/get-started/quick-start/deploy/
In the latest release the feature has improved further:
https://blog.camunda.com/post/2019/10/camunda-modeler-3.4.0-released/
On a local setup use rest endpoint http://localhost:8080/engine-rest if using on of the prepacked distributions or http://localhost:8080/rest if using Spring boot.
b) Process and decisions models (bpmn, dmn) can be auto-deployed. For instance placing the files into the src/main/resources folder (on a default Spring boot setup) will auto-deploy during startup.
c) There are other auto-deploy configuration options: https://docs.camunda.org/manual/latest/user-guide/spring-framework-integration/deployment/
d) You can use the REST-API, for instance with Postman to deploy.
https://docs.camunda.org/manual/latest/reference/rest/deployment/post-deployment/
Examples:
https://github.com/rob2universe/camunda-rest-postman
https://forum.camunda.org/t/process-deployment-to-rest-api-through-postman/10630

Deploy Camunda Process:-
https://docs.camunda.org/get-started/quick-start/deploy/
you can also use the play button to deploy if you are deploying the process for the first time.
camunda-spring-boot-starter is configured to use the SpringProcessEngineConfiguration auto deployment feature by default.
https://docs.camunda.org/manual/7.9/user-guide/spring-boot-integration/process-applications/

Related

Purpose of localConnector-1.0 feature in Websphere server with IntelliJ

I was following a tutorial for setting up a WebSphere Liberty Server Here and didn't really know what a part of the tutorial did. I completed the tutorial and it works fine.
On step 3 it has me modify the server.xml with these two lines and I dont really know what they do.
<applicationMonitor updateTrigger="mbean" />
<feature>localConnector-1.0</feature>
I Found the documentation for localConnector-1.0 but its a little over my head
https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.liberty.autogen.nd.doc/ae/rwlp_feature_localConnector-1.0.html
I think localConnector allows IntelliJ to run the server somehow but i dont know what updateTrigger="mbean" does.
If anyone has an explanation that would be great. Thanks!
The localConnector-1.0 feature enables the local JMX connector on Liberty so that the JMX Client (IntelliJ) can connect to and administer Liberty.
You can find more documentation on the feature here: https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_admin_localconnector.html
updateTrigger="mbean" is setting the application updates to only occur when trigger by an mbean call (whereas the default is to poll for changes).
You can find more documentation here:
https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/twlp_setup_dyn_upd.html

How can I configure JAX-RS endpoints programmaticaly?

I'm trying to get rid of XML in my project.
I already tried to add this:
JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(CustomerService.class);
sf.setAddress("http://localhost:9000/");
sf.create();
to my Activator class, but my bundle wont start with this.
So, how usually people configuring endpoints?
(Sorry, no code, just some high level insights from my experience/projects)
I use jersey and its integration into the OSGi environment. I.e. org.glassfish.jersey.servlet.ServletContainer to which I register all jax-rs resources. This way, I can use whatever HTTP server implementation is available (for example, jetty) and configure it via the OSGi system environment properties.
For simplicity, I re-register annotated OSGi (declarative) services as singleton resources/endpoints into that ServletContainer.
Maybe, CXF has also a similar approach.

Why can not pass Gui User in jUDDI

After Configuration server Juddi in Eclipse and create environment variable
we get Problem to access to page Gui user and admin and tomcat interface :
I think you are looking at something like :
message java.lang.IllegalStateException: No output folder
I would check the Tomcat logs, the permissions of the user you are running tomcat under, and check the directory that you have installed your tomcat into.
Do not even try to use UDDI
these days. People are moving towards semantic web services ,UDDI is out of the scene.
WSMO and OWL-s are major initiatives for semantic web services. These solutions can provide more precise results.
Here's a few
mDNS/Bonjour/Avahi - can be used to share endpoint information for a web service, or anything else using a TXT record
WS-Discovery - supported by CXF and WCF, shares implementation of a specific interface
ebXML - had a component similar to UDDI
visite this link

Release pipeline conflict with integration runtime

This question relates to how to propagate a data factory through CI (in VSTS) if there is a self hosted Integration Runtime defined in the Data Factory.
I have a 3 environments set up - Dev / UAT / Prod each with their own data factory.
The Dev hosts the master collaboration branch. I am using VSTS to retrieve the artifacts from the adf_publish branch and deploying the template to UAT (prod will be done later). I followed much of what is in this guide here.
When deploying to blank UAT with a self-hosted integration runtime (IR), the IR that is deployed in UAT is a copy of the shared IR from dev (not a linked type) and this causes an error since the credentials used by the IR will not be correct. I expect this since we are really just deploying an exact copy of the Resource Group template with just the factory name overridden however the IR will not work without it being re-credentialled with the self hosted IR VMs.
If I pre-register a linked IR with the UAT environment (linked to the dev IRs), then the deployment fails with a conflict because an IR in the resource group template is the same name as the one I just created in UAT. If it is a different name - no conflict but the linked services will be pointing to the template IR and not the one I created for UAT
The docs have a note that says the IR runtime should be the same across all the platforms but I do not think this can be true - one of them (presumably the source/dev) must be a shared type and the others linked and authorized.
One option I could see (untested) is to have each environments IR reference be a separate connection to an actual IR but then there then needs to be some way of overriding the linked services to point to the current environments IR reference (by template parameter override?). In this scenario, we need to block the templates IR from being deployed as it won't be needed and won't work.
Has anyone had success in getting CI working in this situation? My sense is the doc was written with the globally shared IR. Either that or I need to better understand the aim of Auto Integration setting in the linked services definition.
Many thanks.
Mark.
Update
I think there are a couple of bugs in the service so not expecting an answer. I'll post updates here if I see resolution from the bug report I have posted here for the dev group.
In a nutshell, this only affects you if
you have a self hosted integration runtime (IR), and
you are trying to deploy a template to a new data factory from an existing data factory (as you would in Dev->UAT->Prod)
you have a datalake (ADL) linked service defined and using the self hosted IR.
If you have a self hosted IR in the template, the newly deployed copy will not be registered with any server (either linked or unique to the new ADF) as the template only records an IR, it does not instantiate one.
While this can be fixed in post deployment config or scripting, what it can't fix is the dependency in ADL. This is because the ADL linked service wants to encrypt the service principal with the IR....but the IR does not exist at the time of template deployment (i.e. is not configured on a server and not active).
It is no better if you select Managed service identity as the auth on the ADL linked service instead of service principal, then the template fails to deploy because there are no credentials to encrypt and it looks like the resource is expecting to encrypt something.
The work around right now is to use Azure hosted IR for datalake connections. Unfortunately for us this causes a security problem because shared IRs cannot be whitelisted in our ADL Gen 1.
I'll keep you posted.

How can I start a process using activiti-restapi and soapui or restclient

I want to start a simple process that can be in activiti-explorer or I deployed,using activiti-rest api. I use SoapUI or RESTClient.Actually I wrote URL and I can see all of the process,after I start the process with rest-services, I can see the process started in SoapUI,becasuse the reponse is true,but in activiti-explorer,process isn t starting.What should I do? I m waiting your helps
Thanks
My guess is that you deployed the activiti-webapp-explorer2 and activiti-webapp-rest as separate war files and each is using an in memory database.
This means, the applications are essentially seperate.
You have two choices.
Deploy as separate webapps but set them to use the same database instance/
Merge the rest API jar into the explorer webapp.
Both methods are acceptable.