Search code examples
springtomcatspring-bootcamunda

Camunda springboot project not deploying on Camunda-ee tomcat server


I was following for this guide https://camunda.github.io/camunda-bpm-spring-boot-starter/docs/2.2.0/index.html . And create my own new springboot-camunda project. Project structure

enter image description here

And I want to deploy war file, that I've created before, to Camunda-ee local server. And I expect to see this in Camunda cockpit. But it is not there. I'll so appreciate for any useful information how to deploy the Camunda springboot webapp project to the Camunda server. Here's my code

@SpringBootApplication
@EnableProcessApplication
public class SlognSpringBootProcessApplication {

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(SlognSpringBootProcessApplication.class);

        springApplication.run(args);
    }
}

File processes.xml

<?xml version="1.0" encoding="UTF-8"?>
<process-application
        xmlns="http://www.camunda.org/schema/1.0/ProcessApplication"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <process-archive>
        <process-engine>default</process-engine>
        <properties>
            <property name="isDeleteUponUndeploy">true</property>
            <property name="isScanForProcessDefinitions">true</property>
        </properties>
    </process-archive>

</process-application>

File application.properties

camunda.bpm.auto-deployment-enabled=true

File pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>net.slogn.camunda.bpm.spring.social</groupId>
        <artifactId>camunda-bpm-spring-boot-starter-social-integration</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.6.RELEASE</version>
        </parent>
    
        <properties>
            <camunda-spring-starter.version>2.2.0</camunda-spring-starter.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
    
            <dependency>
                <groupId>org.camunda.bpm.extension.springboot</groupId>
                <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.camunda.bpm.extension.springboot</groupId>
                <artifactId>camunda-bpm-spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <scope>runtime</scope>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.camunda.bpm.extension.springboot</groupId>
                    <artifactId>camunda-bpm-spring-boot-starter-bom</artifactId>
                    <version>${camunda-spring-starter.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </project>

Solution

  • First one note: when using @EnableProcessApplication, auto-deployment is disabled, so you can ommit this setting: camunda.bpm.auto-deployment-enabled=true.

    To the main issue: what you are trying to do is package a Spring boot application as war and deploy on application server.

    Checkout https://github.com/camunda/camunda-bpm-spring-boot-starter/tree/master/examples/example-war, I guess you forgot to extend the initializer:

        @SpringBootApplication
        @EnableProcessApplication
        public class SlognSpringBootProcessApplication extends SpringBootServletInitializer {...}
    

    so the engine is created on war deployment.