具有Camunda应用程序的Spring Boot

问题描述 投票:0回答:1

我在理解Spring Boot + Camunda时遇到一些问题。

基本上,我想为我的应用程序提供一个后端(REST)。为此,我创建了一个Spring Boot Java项目。它运行完美。现在,我想将Camunda BPM工作流程包括到我的流程应用程序中。

我已将依赖项添加到我的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>de.countandcare</groupId>
<artifactId>carorderprocess</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>carorderprocess</name>
<description>Demo project for Spring Boot</description>

<dependencyManagement>
<dependencies>
    <dependency>
        <!-- Import dependency management from camunda -->
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>${camunda.version}</version>
        <scope>import</scope>
        <type>pom</type>
    </dependency>
</dependencies>
</dependencyManagement>


<properties>
    <java.version>1.8</java.version>
    <camunda.version>7.9.0-ee</camunda.version>
    <camunda.boot.version>3.0.0</camunda.boot.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.camunda.bpm.springboot</groupId>
        <artifactId>camunda-bpm-spring-boot-starter-webapp-ee</artifactId>
        <version>${camunda.boot.version}</version>
    </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-mockito</artifactId>
        <scope>test</scope>
        <version>2.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.2.132</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.5.2</version>
        <scope>test</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我的主班是:

package de.countandcare.carorderprocess;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class CarorderprocessApplication {

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

}

而且我有一个控制器:

package de.countandcare.carorderprocess.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class OrderController {

    @GetMapping(value = "/")
    public String index() {
        return "index";
    }

}

现在我想在localhost:8080/上到达我的应用程序,该应用程序应返回索引。

现在运行应用程序时出现错误:

2019-11-12 17:06:12.967  INFO 19392 --- [           main] d.c.c.CarorderprocessApplication         : Starting CarorderprocessApplication on U2007750s-MacBook-Pro.local with PID 19392 (/Users/u2007750/CC/Develop/projects/Kfz-Bestellprozess/backend/carorderprocess/target/classes started by u2007750 in /Users/u2007750/CC/Develop/projects/Kfz-Bestellprozess/backend/carorderprocess)
2019-11-12 17:06:12.969  INFO 19392 --- [           main] d.c.c.CarorderprocessApplication         : No active profile set, falling back to default profiles: default
2019-11-12 17:06:13.743  INFO 19392 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-11-12 17:06:13.759  INFO 19392 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-11-12 17:06:13.759  INFO 19392 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.19]
2019-11-12 17:06:13.842  INFO 19392 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-11-12 17:06:13.842  INFO 19392 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 845 ms
2019-11-12 17:06:14.059  INFO 19392 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-11-12 17:06:14.131  INFO 19392 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [META-INF/resources/index.html]
2019-11-12 17:06:14.137  WARN 19392 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
2019-11-12 17:06:14.137  INFO 19392 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2019-11-12 17:06:14.140  INFO 19392 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-11-12 17:06:14.143 ERROR 19392 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Failed to destroy the filter named [Engines Filter] of type [org.camunda.bpm.spring.boot.starter.webapp.filter.LazyProcessEnginesFilter]

为什么会出现错误?我所有的Maven依赖关系都已正确解决。还有如何访问Camuna Webapp,它向我显示了我的流程/任务等...

rest spring-boot camunda
1个回答
0
投票

基于您的堆栈跟踪,我认为您错过了H2 dB的数据库配置。

请在application.propeties中添加这些道具

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
© www.soinside.com 2019 - 2024. All rights reserved.