我关注此指南 - https://camunda.github.io/camunda-bpm-spring-boot-starter/docs/2.2.0/index.html 并创建我自己的新springboot-camunda项目。
我想将之前创建的war文件部署到Camunda-ee本地服务器。我希望在Camunda驾驶舱看到这个。但它不在那里。我非常感谢有关如何将Camunda springboot webapp项目部署到Camunda服务器的任何有用信息。
这是我的代码:
@SpringBootApplication
@EnableProcessApplication
public class SlognSpringBootProcessApplication {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(SlognSpringBootProcessApplication.class);
springApplication.run(args);
}
}
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>
application.properties:
camunda.bpm.auto-deployment-enabled=true
的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>
答案 0 :(得分:3)
首先注意:使用@EnableProcessApplication时,会禁用自动部署,因此您可以省略此设置:“camunda.bpm.auto-deployment-enabled = true”。
对于主要问题:您正在尝试的是将Spring启动应用程序打包为war并在应用程序服务器上部署。
结帐https://github.com/camunda/camunda-bpm-spring-boot-starter/tree/master/examples/example-war,我猜你忘了扩展初始化程序:
@SpringBootApplication
@EnableProcessApplication
public class SlognSpringBootProcessApplication extends SpringBootServletInitializer {...}
所以引擎是在战争部署时创建的。
答案 1 :(得分:0)
我知道你怎么了。
您正在尝试创建war文件并将其部署在共享的camunda引擎上。 所以让我告诉您,这不是您的正确做法。 Camunda入门罐在侧面装有tomcat。并且生成的战争文件将使用您已经通过启动程序jar提供的camunda引擎。
要解决此问题,您需要使用Spring Boot和Spring Framework的混合版本。 在您的项目中使用spring boot,在camunda引擎中使用spring framework。 您需要使用作为上下文的共享引擎运行时。 在这里,您可以看到pom示例和必须提及的类。 http://javaint4bytes.blogspot.com/2019/11/camunda-spring-boot-with-shared-engine.html