news 2026/10/1 9:29:20

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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.测试如下;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 9:27:52

基于大数据分析的商品推荐系统设计与实现(源码+lw+部署文档+讲解等)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/10/1 9:27:28

虚拟机命令行工具实战:VBoxManage、vmrun与virsh全解析

不知道你有没有过这样的经历&#xff1a;明明只是想从宿主机往虚拟机里拷贝一份文件&#xff0c;结果图形界面点半天找不到共享文件夹&#xff1b;或者想在CI服务器上无头批量创建几台测试机&#xff0c;却只能对着Vmware Workstation的窗口发呆。我做了这么多年虚拟化相关的事…

作者头像 李华
网站建设 2026/10/1 9:26:45

虚幻引擎5.9渲染通道集成生成式AI图像与视频模型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 9:26:28

固定资产管理系统需求说明书拆解:从需求分析到数据建模实战

简介&#xff1a;最新版某某公司固定资产管理系统用户需求说明书&#xff0c;面向企业信息化部门、软件需求分析师及资产管理人员&#xff0c;用于明确系统功能范围与业务流程。文档系统梳理了资产全生命周期管理需求&#xff0c;涵盖资产登记、条形码/RFID集成、采购入库、分配…

作者头像 李华
网站建设 2026/10/1 9:26:17

从入门到维护:开源项目 README 编写规范与实操指南

项目代码写得再漂亮&#xff0c;如果 README 写得稀烂&#xff0c;这个项目的曝光和采用率都会大打折扣。我见过不少开发者把绝大多数精力放在代码重构、测试覆盖、CI 配置上&#xff0c;却把 README 当成最后随手补上的“作业”&#xff0c;结果项目明明技术很扎实&#xff0c…

作者头像 李华