camunda / camunda-bpm-platform

Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Quarkus, Spring, Spring Boot, CDI.
https://camunda.com/
Apache License 2.0
4.1k stars 1.55k forks source link

Getting started guide external task worker for Java doesn't work #4520

Closed ingorichtsmeier closed 1 month ago

ingorichtsmeier commented 1 month ago

Environment (Required on creation)

7.21.0

Description (Required on creation; please attach any relevant screenshots, stacktraces, log files, etc. to the ticket)

Creating a project from the snipptes provided in the documentation here https://docs.camunda.org/get-started/quick-start/service-task/#add-camunda-external-task-client-dependency and here https://docs.camunda.org/get-started/quick-start/service-task/#add-the-java-class lead to an error when starting the project:

[main] INFO 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]
[main] INFO 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]
[main] INFO org.camunda.bpm.client - TASK/CLIENT-01026 Discovered data format provider: org.camunda.bpm.client.variable.impl.format.xml.DomXmlDataFormatProvider[name = application/xml]
Exception in thread "main" java.lang.NoClassDefFoundError: jakarta/xml/bind/JAXBException
    at org.camunda.bpm.client.variable.impl.format.xml.DomXmlDataFormatProvider.createInstance(DomXmlDataFormatProvider.java:31)
    at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.lookupProvider(ExternalTaskClientBuilderImpl.java:348)
    at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.lookupCustomDataFormats(ExternalTaskClientBuilderImpl.java:339)
    at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.lookupDataFormats(ExternalTaskClientBuilderImpl.java:327)
    at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.initVariableMappers(ExternalTaskClientBuilderImpl.java:286)
    at org.camunda.bpm.client.impl.ExternalTaskClientBuilderImpl.build(ExternalTaskClientBuilderImpl.java:224)
    at com.camunda.consulting.basic_external_task_worker.ExampleWorker.main(ExampleWorker.java:15)
Caused by: java.lang.ClassNotFoundException: jakarta.xml.bind.JAXBException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
    ... 7 more

Steps to reproduce (Required on creation)

  1. Create a new maven project
  2. Add content to the pom as described in docs
  3. Add a java class as described in the docs
  4. Start the Java program.

Observed Behavior (Required on creation)

Exception as shown above.

Expected behavior (Required on creation)

The external task client starts without error.

Root Cause (Required on prioritization)

Using Jakarta classes in internal classes in the client library.

Solution Ideas

Improve the documentation.

Hints

Links

Breakdown

### camunda-docs-static PR
- [ ] https://github.com/camunda/camunda-docs-static/pull/477

Dev2QA handover

psavidis commented 1 month ago

The Get Started Documentation has been updated (External Task Client, charge-card-worker source code).

Closing the ticket.