【问题标题】:Camunda, Wont deploy to TomcatCamunda,不会部署到 Tomcat
【发布时间】:2020-02-09 21:49:56
【问题描述】:

我正在尝试创建一个完整的 Camunda 实例(驾驶舱、andmin、tasklist、engine-rest,...)。

我已经使用他们的 archtype 创建了一个项目,并使用 maven springboot:run 成功运行了它

但是在尝试将项目部署到 Tomcat 服务器时。我面临项目无法访问的问题。

我有以下 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>com.myapplication.camunda</groupId>
  <artifactId>camunda-all</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>Camunda Spring Boot Application</name>
  <description>Spring Boot Application using [Camunda](http://docs.camunda.org). [The project has been generated by the Maven archetype 'camunda-archetype-spring-boot-7.9.2']</description>
  <packaging>war</packaging>
  <properties>
    <camunda.version>7.9.0</camunda.version>
    <!--
    Adjust if you want to use Camunda Enterprise Edition (EE):
    <camunda.version>7.9.0-ee</camunda.version>
    Make sure you also switch to the ee webapp dependency
    and EE repository below
    -->
    <camundaSpringBoot.version>3.0.0</camundaSpringBoot.version>
    <springBoot.version>2.0.2.RELEASE</springBoot.version>

    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <version.java>1.8</version.java>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <failOnMissingWebXml>false</failOnMissingWebXml>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>${camunda.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.camunda.bpm.dmn</groupId>
        <artifactId>camunda-engine-dmn-bom</artifactId>
        <version>${camunda.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${springBoot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
      <!--
      Adjust if you want to use EE:
      <artifactId>camunda-bpm-spring-boot-starter-webapp-ee</artifactId>
      Make sure you also use an EE version of Camunda - see above
      -->
      <version>${camundaSpringBoot.version}</version>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
      <version>${camundaSpringBoot.version}</version>
    </dependency>

    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
    </dependency>

    <!-- required to use H2 as a file based database  (Otherwise it's In-Memory) -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <!-- Required to use Spin dataformat support -->
    <dependency>
      <groupId>org.camunda.spin</groupId>
      <artifactId>camunda-spin-dataformat-all</artifactId>
    </dependency>
    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-spin</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.camunda.bpm.extension</groupId>
      <artifactId>camunda-bpm-assert</artifactId>
      <version>1.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.camunda.bpm.extension</groupId>
      <artifactId>camunda-bpm-assert-scenario</artifactId>
      <version>0.2</version>
      <scope>test</scope>
    </dependency>
    <!-- Used to generate test coverage reports, see https://github.com/camunda/camunda-consulting/tree/master/snippets/camunda-bpm-process-test-coverage -->
    <!--
    <dependency>
      <groupId>org.camunda.bpm.extension</groupId>
      <artifactId>camunda-bpm-process-test-coverage</artifactId>
      <version>0.3.2</version>
      <scope>test</scope>
    </dependency> -->

    <!-- java util logging => slf4j -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <scope>test</scope>
    </dependency>

    <!-- Add your own dependencies here, if in compile scope, they are added to the jar -->

    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
<!--      <version>2.4.0-b180725.0427</version>-->
    </dependency>


    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
<!--      <version>4.5.2</version>-->
    </dependency>

    <dependency>
      <groupId>com.googlecode.json-simple</groupId>
      <artifactId>json-simple</artifactId>
      <version>1.1</version>
    </dependency>

  </dependencies>

  <repositories>
    <repository>
      <id>camunda-bpm-nexus</id>
      <name>Camunda Maven Repository</name>
      <url>https://app.camunda.com/nexus/content/groups/public</url>
    </repository>
    <!-- enable this for EE dependencies (requires credentials in ~/.m2/settings.xml)
    <repository>
      <id>camunda-bpm-nexus-ee</id>
      <name>Camunda Enterprise Maven Repository</name>
      <url>https://app.camunda.com/nexus/content/repositories/camunda-bpm-ee</url>
    </repository>
    -->
  </repositories>

  <build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>${springBoot.version}</version>
        <configuration>
          <layout>ZIP</layout>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <configuration>
          <mainClass>com.myapplication.camunda.CamundaApplication</mainClass>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <dependencies>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>

我有以下应用程序类

package com.myapplication.camunda;

import org.camunda.bpm.spring.boot.starter.annotation.EnableProcessApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@EnableProcessApplication("camunda-all")
@ComponentScan("com.myapplication.camunda")
@ComponentScan("com.springboot.camunda")
public class CamundaApplication extends SpringBootServletInitializer {

    public static void main(String... args) {
      SpringApplication.run(CamundaApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(CamundaApplication.class);
    }
}

以下application.yaml

spring.datasource:
  url: jdbc:postgresql://localhost:5432/camunda_db?autoReconnect=true

  username: postgres
  password: postgres
  driver-class-name: org.postgresql.Driver
spring.h2.console.enabled: true
camunda.bpm:
  admin-user:
    id: demo
    password: demo
    firstName: Demo
  filter:
    create: All tasks
server.port: 8080
server:
  servlet:
    context-path: /camunda-all

我的 main/resources/webapp 目录是空的。

非常感谢任何帮助。

【问题讨论】:

    标签: spring-boot tomcat camunda


    【解决方案1】:
    • 创建了空的 maven 项目
    • 添加了您在上面发布的文件
    • 为我的 postgres 调整了数据库设置
    • cmd: mvn spring-boot:run

      可通过http://localhost:8080/camunda-all 访问门户

    然后为外部 tomcat 部署调整 POM(也升级版本和清理)。

    此处更新结果: https://github.com/rob2universe/stackoverflow58356978

    【讨论】:

    • 感谢您的帮助。但是该项目已经在独立设置中运行。我想将项目中的战争文件部署到 Tomcat 9 服务器,这是我的问题。谢谢。
    • 进行了更改。请立即查看
    【解决方案2】:

    在 camunda 应用服务器中部署你的战争有几件事要做。

    1. 在 pom.xml 文件中添加所需的依赖项

      <dependency>
           <groupId>org.camunda.bpm</groupId>
           <artifactId>camunda-engine</artifactId>
           <version>7.13.0</version>
           <scope>provided</scope>
      </dependency>
      
      
    2. 将@EnableProcessApplication("camunda-all") 替换为@ProcessApplication("camunda-all")

    3. 使用 ServletProcessApplication 扩展您的主类,而不是使用 SpringBootServletInitializer。

    4. 在资源/META-INF 文件夹内的 process.xml 文件中添加了您的 BPMN 文件。

    
    <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>
        <resource>invoice.v2.bpmn</resource>
        <resource>invoiceBusinessDecisions.dmn</resource>
        <properties>
          <property name="isDeleteUponUndeploy">false</property>
          <property name="isScanForProcessDefinitions">false</property>
        </properties>
      </process-archive>
    
    </process-application>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2017-04-17
      相关资源
      最近更新 更多