camunda-external-task-java外部任务项目启动失败,Error creating bean with name ‘externalTaskClient‘: .....

1.环境;

win10,camunda7.17.0,jdk11, idea 2022.2.3

利用springboot项目重新构建camunda-engine,用mysql5.7数据库。

2.camunda数据库;

据说可以在启动引擎端spring boot项目的时候自动创建数据库;此处是手动导入创建的。

3.camunda引擎端;

https://camunda.com/download/https://camunda.com/download/

 修改后pom.xml内容如下;

<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>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.4</version>
  </parent>
  <groupId>com.forestlake.workflow</groupId>
  <artifactId>camunda-engine</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.6.4</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>7.17.0</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter</artifactId>
      <version>7.17.0</version>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm.springboot</groupId>
      <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-spin</artifactId>
    </dependency>

    <dependency>
      <groupId>org.camunda.spin</groupId>
      <artifactId>camunda-spin-dataformat-all</artifactId>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.30</version>
    </dependency>

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

    <!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all -->
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>3.0.13</version>
      <type>pom</type>
    </dependency>

    <!--groovy发送Http请求,底层是对HTTPClient封装 HttpBuilder-->
    <dependency>
      <groupId>org.codehaus.groovy.modules.http-builder</groupId>
      <artifactId>http-builder</artifactId>
      <version>0.7.1</version>
    </dependency>
    <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine-plugin-connect</artifactId>
      <version>7.17.0</version>
    </dependency>

    <dependency>
      <groupId>org.camunda.connect</groupId>
      <artifactId>camunda-connect-connectors-all</artifactId>
      <version>1.5.5</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>2.6.4</version>
      </plugin>
    </plugins>
  </build>

</project>

application.yaml修改如下;

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/camunda?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&nullCatalogMeansCurrent=true
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root

 camunda引擎端启动正常;

4.spring boot 外部任务客户端;

根据官网文档创建外部任务客户端;

外部任务客户端 Spring Boot Starter | docs.camunda.orgCamunda流程平台中文站、中文文档http://camunda-cn.shaochenfeng.com/user-guide/ext-client/spring-boot-starter/

 将camunda版本改为7.17.0;

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>
	<groupId>com.tjm</groupId>
	<artifactId>camunda-external-task-java</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>camunda-external-task-java</name>
	<description>camunda外部任务</description>
	<properties>
		<java.version>11</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compiler.source>8</maven.compiler.source>
		<maven.compiler.target>8</maven.compiler.target>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>2.6.4</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<dependency>
			<groupId>org.camunda.bpm.springboot</groupId>
			<artifactId>camunda-bpm-spring-boot-starter-external-task-client</artifactId>
			<version>7.17.0</version>
		</dependency>

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

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

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>2.6.4</version>
			</plugin>
		</plugins>
	</build>

</project>

application.properties如下;

server.port=8083

spring.application.name=external-task

camunda.bpm.client.base-url=http://localhost:8080/engine-rest

camunda.bpm.client.async-response-timeout=20000

camunda.bpm.client.max-tasks=50

camunda.bpm.client.lock-duration=10000

camunda.bpm.client.worker-id=java-client

外部任务订阅类如下;

package com.tjm.externaltask;

import org.camunda.bpm.client.spring.annotation.ExternalTaskSubscription;
import org.camunda.bpm.client.task.ExternalTaskHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @description: 外部任务订阅主题
 * @author: tjm 
 * @date: 2022/11/8 10:03
 * @param: 
 * @return: 
 **/
@Configuration
public class ShoppingService {

    /**
     * @description: 物流发货
     * @author: tjm 
     * @date: 2022/11/8 10:08
     * @param: []
     * @return: org.camunda.bpm.client.task.ExternalTaskHandler
     **/
    @Bean
    @ExternalTaskSubscription(topicName = "deliver_goods", processDefinitionKeyIn = {"Process_shopping"}, lockDuration = 50000)
    public ExternalTaskHandler deliverGoods() {

        return (externalTask, externalTaskService) -> {
            System.out.println("商家已经发货");
            externalTaskService.complete(externalTask);
        };
    }

    /**
     * @description: 收货
     * @author: tjm
     * @date: 2022/11/8 10:08
     * @param: []
     * @return: org.camunda.bpm.client.task.ExternalTaskHandler
     **/
    @Bean
    @ExternalTaskSubscription(topicName = "receive_goods")
    public ExternalTaskHandler receiveGoods() {

        return (externalTask, externalTaskService) -> {
            System.out.println("顾客收到物品");
            externalTaskService.complete(externalTask);
        };
    }
}

启动类入口;

 5.camunda modler设计流程bpmn文件;

6.外部任务客户端spring boot项目启动失败;

"D:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2.3\lib\idea_rt.jar=57595:D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2.3\bin" -Dfile.encoding=UTF-8 -classpath D:\TJM-SpringCloud-WorkSpace\camunda实战课程源码--【2022-11-1】\camunda-external-task-java-error\target\classes;D:\localRepository\org\camunda\bpm\springboot\camunda-bpm-spring-boot-starter-external-task-client\7.17.0\camunda-bpm-spring-boot-starter-external-task-client-7.17.0.jar;D:\localRepository\org\camunda\bpm\camunda-external-task-client-spring\7.17.0\camunda-external-task-client-spring-7.17.0.jar;D:\localRepository\org\camunda\bpm\camunda-external-task-client\7.17.0\camunda-external-task-client-7.17.0.jar;D:\localRepository\org\camunda\commons\camunda-commons-logging\1.10.0\camunda-commons-logging-1.10.0.jar;D:\localRepository\org\camunda\commons\camunda-commons-typed-values\7.17.0\camunda-commons-typed-values-7.17.0.jar;D:\localRepository\org\camunda\commons\camunda-commons-utils\1.10.0\camunda-commons-utils-1.10.0.jar;D:\localRepository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\localRepository\org\apache\httpcomponents\httpcore\4.4.15\httpcore-4.4.15.jar;D:\localRepository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\localRepository\org\springframework\boot\spring-boot-autoconfigure\2.6.4\spring-boot-autoconfigure-2.6.4.jar;D:\localRepository\org\springframework\boot\spring-boot-starter-web\2.6.4\spring-boot-starter-web-2.6.4.jar;D:\localRepository\org\springframework\boot\spring-boot-starter-json\2.6.4\spring-boot-starter-json-2.6.4.jar;D:\localRepository\com\fasterxml\jackson\core\jackson-databind\2.13.1\jackson-databind-2.13.1.jar;D:\localRepository\com\fasterxml\jackson\core\jackson-annotations\2.13.1\jackson-annotations-2.13.1.jar;D:\localRepository\com\fasterxml\jackson\core\jackson-core\2.13.1\jackson-core-2.13.1.jar;D:\localRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.1\jackson-datatype-jdk8-2.13.1.jar;D:\localRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.1\jackson-datatype-jsr310-2.13.1.jar;D:\localRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.1\jackson-module-parameter-names-2.13.1.jar;D:\localRepository\org\springframework\boot\spring-boot-starter-tomcat\2.6.4\spring-boot-starter-tomcat-2.6.4.jar;D:\localRepository\org\apache\tomcat\embed\tomcat-embed-core\9.0.58\tomcat-embed-core-9.0.58.jar;D:\localRepository\org\apache\tomcat\embed\tomcat-embed-el\9.0.58\tomcat-embed-el-9.0.58.jar;D:\localRepository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.58\tomcat-embed-websocket-9.0.58.jar;D:\localRepository\org\springframework\spring-web\5.3.16\spring-web-5.3.16.jar;D:\localRepository\org\springframework\spring-beans\5.3.16\spring-beans-5.3.16.jar;D:\localRepository\org\springframework\spring-webmvc\5.3.16\spring-webmvc-5.3.16.jar;D:\localRepository\org\springframework\spring-aop\5.3.16\spring-aop-5.3.16.jar;D:\localRepository\org\springframework\spring-context\5.3.16\spring-context-5.3.16.jar;D:\localRepository\org\springframework\spring-expression\5.3.16\spring-expression-5.3.16.jar;D:\localRepository\org\springframework\boot\spring-boot-starter\2.6.4\spring-boot-starter-2.6.4.jar;D:\localRepository\org\springframework\boot\spring-boot\2.6.4\spring-boot-2.6.4.jar;D:\localRepository\org\springframework\boot\spring-boot-starter-logging\2.6.4\spring-boot-starter-logging-2.6.4.jar;D:\localRepository\ch\qos\logback\logback-classic\1.2.10\logback-classic-1.2.10.jar;D:\localRepository\ch\qos\logback\logback-core\1.2.10\logback-core-1.2.10.jar;D:\localRepository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\localRepository\org\apache\logging\log4j\log4j-to-slf4j\2.17.1\log4j-to-slf4j-2.17.1.jar;D:\localRepository\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;D:\localRepository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\localRepository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\localRepository\org\springframework\spring-core\5.3.16\spring-core-5.3.16.jar;D:\localRepository\org\springframework\spring-jcl\5.3.16\spring-jcl-5.3.16.jar;D:\localRepository\org\yaml\snakeyaml\1.29\snakeyaml-1.29.jar com.tjm.ExternalTaskApplication
   ____                                           _             ____    _           _      __
  / ___|   __ _   _ __ ___    _   _   _ __     __| |   __ _    |  _ \  | |   __ _  | |_   / _|   ___    _ __   _ __ ___
 | |      / _` | | '_ ` _ \  | | | | | '_ \   / _` |  / _` |   | |_) | | |  / _` | | __| | |_   / _ \  | '__| | '_ ` _ \
 | |___  | (_| | | | | | | | | |_| | | | | | | (_| | | (_| |   |  __/  | | | (_| | | |_  |  _| | (_) | | |    | | | | | |
  \____|  \__,_| |_| |_| |_|  \__,_| |_| |_|  \__,_|  \__,_|   |_|     |_|  \__,_|  \__| |_|    \___/  |_|    |_| |_| |_|

  _____          _                                   _     _____                 _         ____   _   _                  _
 | ____| __  __ | |_    ___   _ __   _ __     __ _  | |   |_   _|   __ _   ___  | | __    / ___| | | (_)   ___   _ __   | |_
 |  _|   \ \/ / | __|  / _ \ | '__| | '_ \   / _` | | |     | |    / _` | / __| | |/ /   | |     | | | |  / _ \ | '_ \  | __|
 | |___   >  <  | |_  |  __/ | |    | | | | | (_| | | |     | |   | (_| | \__ \ |   <    | |___  | | | | |  __/ | | | | | |_
 |_____| /_/\_\  \__|  \___| |_|    |_| |_|  \__,_| |_|     |_|    \__,_| |___/ |_|\_\    \____| |_| |_|  \___| |_| |_|  \__|

  Spring-Boot:  (v2.6.4)
  Camunda Platform: (v7.17.0)
2022-11-08 10:29:23.271  INFO 1800 --- [           main] com.tjm.ExternalTaskApplication          : Starting ExternalTaskApplication using Java 11.0.6 on tjm-12426 with PID 1800 (D:\TJM-SpringCloud-WorkSpace\camunda实战课程源码--【2022-11-1】\camunda-external-task-java-error\target\classes started by DELL in D:\TJM-SpringCloud-WorkSpace\camunda实战课程源码--【2022-11-1】\camunda-external-task-java-error)
2022-11-08 10:29:23.275  INFO 1800 --- [           main] com.tjm.ExternalTaskApplication          : No active profile set, falling back to 1 default profile: "default"
2022-11-08 10:29:24.428  INFO 1800 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8083 (http)
2022-11-08 10:29:24.439  INFO 1800 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-11-08 10:29:24.439  INFO 1800 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.58]
2022-11-08 10:29:24.528  INFO 1800 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-11-08 10:29:24.528  INFO 1800 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1192 ms
2022-11-08 10:29:24.992  INFO 1800 --- [           main] org.camunda.bpm.client                   : TASK/CLIENT-01026 Discovered data format provider: org.camunda.bpm.client.variable.impl.format.json.JacksonJsonDataFormatProvider[name = application/json]
2022-11-08 10:29:24.994  INFO 1800 --- [           main] org.camunda.bpm.client                   : TASK/CLIENT-01025 Discovered data format: org.camunda.bpm.client.variable.impl.format.json.JacksonJsonDataFormat[name = application/json]
2022-11-08 10:29:24.995  INFO 1800 --- [           main] org.camunda.bpm.client                   : TASK/CLIENT-01026 Discovered data format provider: org.camunda.bpm.client.variable.impl.format.serializable.SerializableDataFormatProvider[name = application/x-java-serialized-object]
2022-11-08 10:29:24.995  INFO 1800 --- [           main] org.camunda.bpm.client                   : TASK/CLIENT-01025 Discovered data format: org.camunda.bpm.client.variable.impl.format.serializable.SerializableDataFormat[name = application/x-java-serialized-object]
2022-11-08 10:29:24.995  INFO 1800 --- [           main] org.camunda.bpm.client                   : TASK/CLIENT-01026 Discovered data format provider: org.camunda.bpm.client.variable.impl.format.xml.DomXmlDataFormatProvider[name = application/xml]
2022-11-08 10:29:24.996  WARN 1800 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deliverGoodsSubscription': Unsatisfied dependency expressed through field 'client'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'externalTaskClient': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
2022-11-08 10:29:24.999  INFO 1800 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2022-11-08 10:29:25.010  INFO 1800 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-11-08 10:29:25.027 ERROR 1800 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'deliverGoodsSubscription': Unsatisfied dependency expressed through field 'client'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'externalTaskClient': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.16.jar:5.3.16]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) ~[spring-boot-2.6.4.jar:2.6.4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[spring-boot-2.6.4.jar:2.6.4]
	at com.tjm.ExternalTaskApplication.main(ExternalTaskApplication.java:17) ~[classes/:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'externalTaskClient': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:176) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1884) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1284) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:345) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1389) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1309) ~[spring-beans-5.3.16.jar:5.3.16]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:656) ~[spring-beans-5.3.16.jar:5.3.16]
	... 20 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at org.camunda.bpm.client.variable.impl.format.xml.DomXmlDataFormatProvider.createInstance(DomXmlDataFormatProvider.java:31) ~[camunda-external-task-client-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.lookupProvider(ExternalTaskClientBuilderImpl.java:306) ~[camunda-external-task-client-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.lookupCustomDataFormats(ExternalTaskClientBuilderImpl.java:297) ~[camunda-external-task-client-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.lookupDataFormats(ExternalTaskClientBuilderImpl.java:285) ~[camunda-external-task-client-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.initVariableMappers(ExternalTaskClientBuilderImpl.java:247) ~[camunda-external-task-client-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.build(ExternalTaskClientBuilderImpl.java:185) ~[camunda-external-task-client-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.spring.impl.client.ClientFactory.getObject(ClientFactory.java:92) ~[camunda-external-task-client-spring-7.17.0.jar:7.17.0]
	at org.camunda.bpm.client.spring.impl.client.ClientFactory.getObject(ClientFactory.java:36) ~[camunda-external-task-client-spring-7.17.0.jar:7.17.0]
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:169) ~[spring-beans-5.3.16.jar:5.3.16]
	... 29 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	... 38 common frames omitted


Process finished with exit code 1

7.问题分析及解决方法;

核心错误信息如下;

 处理问题思路如下:

1.根据控制台错误提示信息,应该是名称为"deliverGoodsSubscription"的bean创建失败,于是全项目搜索"deliverGoodsSubscription",并没有发现有该bean名称的声明或者定义;

2.又在camunda-engine引擎端,全文检索"deliverGoodsSubscription",也未发现有该bean名称;

3.又清理了camunda数据库,重新导入脚本;

4.又换jdk8;

5.又换spring boot 版本;

6.又更换项目路径,不放到中文路径下面。

一一尝试后,问题依然没解决,仍然提示"deliverGoodsSubscription"的bean创建失败,问题肯定出在客户端了,根据命名,最接近的源头就是"com.tjm.externaltask.ShoppingService#deliverGoods"。于是继续查阅官方文档,发现问题的根源如下:

 说明是订阅任务的方法出了问题,关注点回到了下面地方:

 8.终极解决方法;

 问题的根本原因是:高版本的JDK中不包含javax.xml.bind相关包。

 解决方法:加入低版本的依赖包。

<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-impl</artifactId>
			<version>4.0.1</version>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-core</artifactId>
			<version>4.0.1</version>
		</dependency>

客户端完整的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>
	<groupId>com.tjm</groupId>
	<artifactId>camunda-external-task-java</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>camunda-external-task-java</name>
	<description>camunda外部任务</description>
	<properties>
		<java.version>11</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compiler.source>8</maven.compiler.source>
		<maven.compiler.target>8</maven.compiler.target>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>2.6.4</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<dependency>
			<groupId>org.camunda.bpm.springboot</groupId>
			<artifactId>camunda-bpm-spring-boot-starter-external-task-client</artifactId>
			<version>7.17.0</version>
		</dependency>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-impl</artifactId>
			<version>4.0.1</version>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.bind</groupId>
			<artifactId>jaxb-core</artifactId>
			<version>4.0.1</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>2.6.4</version>
			</plugin>
		</plugins>
	</build>

</project>

客户端正常启动如下:

9.测试如下;

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值