camunda-community-hub / camunda-platform-7-camel Goto Github PK
View Code? Open in Web Editor NEWCommunity Extension to add Apache Camel support for Camunda Platform 7
License: Apache License 2.0
Community Extension to add Apache Camel support for Camunda Platform 7
License: Apache License 2.0
see #31
currently, I have to use the spring dependency and add a bean configuration to my app:
@Bean
fun camel(processEngine:ProcessEngine, camelContext: CamelContext) = CamelServiceImpl().apply {
setCamelContext(camelContext)
setProcessEngine(processEngine)
camelContext.addComponent(CamundaBpmConstants.CAMUNDA_BPM_CAMEL_URI_SCHEME, CamundaBpmComponent(processEngine))
}
I would love to have en autoconfiguration for this ... it should follow the @EnableCamundaCamel
convention and not use the spring-factories config so I can easily choose to enable/disable independent of the jar on my classpath
The existing processEngine is actually not correctly set and @Autowired is used in the commons module. This popped up while looking at #54.
following a pattern that we used for many extensions in the past (see https://github.com/camunda-community-hub/camunda-rest-client-spring-boot for example) I would like to restructure the layout so we have
This has proven to be a very effective multi module layout that allows to have multiple examples within the same mono-repo that are not published to maven central.
Not using sub folders easily leads to a cluttered repo when the number of examples and extensions increases.
The Sample project links on pages are all leading to 404.
My current customer, could have used a way to let Camel behave as an external task worker, i.e. fetch tasks from Camunda and report back on them once they are completed or when errors occurred.
For folks using the community-hub-release-parent
POM, an update is required because we recently moved from Nexus to Artifactory (learn more here). Please make sure you are using version 1.3.1 to avoid failed deployments.
see: https://github.com/camunda-community-hub/camunda-bpm-camel/runs/4896841085?check_suite_focus=true
we get
Error: Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.8:deploy (default-deploy) on project camunda-bpm-camel-spring: Failed to deploy artifacts: Could not transfer artifact org.camunda.bpm.extension.camel:camunda-bpm-camel:pom:0.9.0-20220121.132151-1 from/to camunda-nexus (https://app.camunda.com/nexus/content/repositories/camunda-bpm-community-extensions-snapshots): authentication failed for https://app.camunda.com/nexus/content/repositories/camunda-bpm-community-extensions-snapshots/org/camunda/bpm/extension/camel/camunda-bpm-camel/0.9.0-SNAPSHOT/camunda-bpm-camel-0.9.0-20220121.132151-1.pom, **status: 401 Unauthorized** -> [Help 1]
I copied the standard actions from camunda-bpm-mockito, so I guess its just missing secrets on this repo.
@celanthe , can you take care of this?
If a Camel route is called using the expression "${camel.sendTo(...)}" then a failed route should be handeled in BPMN using BPMN errors. Otherwise the process goes on as if the route was successful.
Pull request ist coming soon...
Hi folks,
Another issue I could use some assistance with please.
I have a BPMN which uses the Camunda-Camel library to communicate to a third party service through Kafka, i.e.:
The routing sometime breaks with the following error:
2019-04-25 11:56:33,696 ERROR o.a.c.p.DefaultErrorHandler [-1) thread #1 - KafkaConsumer[toCamunda]] -> Failed delivery for (MessageId: ID-LAPTOP-9OG51EMC-1556205751527-0-4 on ExchangeId: ID-LAPTOP-9OG51EMC-1556205751527-0-3). Exhausted after delivery attempt: 1 caught: java.lang.RuntimeException: Couldn't find waiting process instance with id 'b2c37f57-6772-11e9-9616-e86a64530ab3' for message 'camel.answer'
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[asyncResponse ] [asyncResponse ] [kafka://localhost:9092?autoOffsetReset=earliest&brokers=localhost%3A9092&consu] [ 100]
[asyncResponse ] [unmarshal1 ] [unmarshal[org.apache.camel.model.dataformat.JsonDataFormat@473c9784] ] [ 22]
[asyncResponse ] [process2 ] [Processor@0x3a92a57c ] [ 0]
[asyncResponse ] [to2 ] [camunda-bpm:message?messageName=camel.answer©BodyAsVariable=aggregateData ] [ 75]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.lang.RuntimeException: Couldn't find waiting process instance with id 'b2c37f57-6772-11e9-9616-e86a64530ab3' for message 'camel.answer'
at org.camunda.bpm.camel.component.producer.MessageProducer.process(MessageProducer.java:116)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
at org.apache.camel.component.kafka.KafkaConsumer$KafkaFetchRecords.doRun(KafkaConsumer.java:326)
at org.apache.camel.component.kafka.KafkaConsumer$KafkaFetchRecords.run(KafkaConsumer.java:215)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
2019-04-25 11:56:33,698 WARN o.a.c.c.k.KafkaConsumer [-1) thread #1 - KafkaConsumer[toCamunda]] -> Error during processing. Exchange[ID-LAPTOP-9OG51EMC-1556205751527-0-3]. Caused by: [java.lang.RuntimeException - Couldn't find waiting process instance with id 'b2c37f57-6772-11e9-9616-e86a64530ab3' for message 'camel.answer']
java.lang.RuntimeException: Couldn't find waiting process instance with id 'b2c37f57-6772-11e9-9616-e86a64530ab3' for message 'camel.answer'
at org.camunda.bpm.camel.component.producer.MessageProducer.process(MessageProducer.java:116)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
at org.apache.camel.component.kafka.KafkaConsumer$KafkaFetchRecords.doRun(KafkaConsumer.java:326)
at org.apache.camel.component.kafka.KafkaConsumer$KafkaFetchRecords.run(KafkaConsumer.java:215)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
The BPMN:
<?xml version="1.0" encoding="UTF-8"?> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0wxf2ek" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="2.2.4"> <bpmn:message id="Message_1buba0w" name="camel.answer" /> <bpmn:message id="Message_19viyxu" name="camel.answer" /> <bpmn:process id="camel_asynch" name="Camel async" isExecutable="true"> <bpmn:endEvent id="EndEvent_1egevrf"> <bpmn:incoming>SequenceFlow_0aodgcz</bpmn:incoming> </bpmn:endEvent> <bpmn:sendTask id="SendTask_1ouqvcf" name="Call async service" camunda:expression="#{camel.sendTo('direct:asyncService')}" camunda:resultVariable="aggregateData"> <bpmn:incoming>SequenceFlow_1yw1ho6</bpmn:incoming> <bpmn:outgoing>SequenceFlow_1i1ujc8</bpmn:outgoing> </bpmn:sendTask> <bpmn:sequenceFlow id="SequenceFlow_0aodgcz" sourceRef="IntermediateCatchEvent_133vikc" targetRef="EndEvent_1egevrf" /> <bpmn:sequenceFlow id="SequenceFlow_1yw1ho6" sourceRef="StartEvent_1cmiw6j" targetRef="SendTask_1ouqvcf" /> <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_133vikc" name="message 'answer' received"> <bpmn:incoming>SequenceFlow_1i1ujc8</bpmn:incoming> <bpmn:outgoing>SequenceFlow_0aodgcz</bpmn:outgoing> <bpmn:messageEventDefinition id="MessageEventDefinition_0anjhqa" messageRef="Message_0u86xqd" /> </bpmn:intermediateCatchEvent> <bpmn:sequenceFlow id="SequenceFlow_1i1ujc8" sourceRef="SendTask_1ouqvcf" targetRef="IntermediateCatchEvent_133vikc" /> <bpmn:startEvent id="StartEvent_1cmiw6j"> <bpmn:outgoing>SequenceFlow_1yw1ho6</bpmn:outgoing> </bpmn:startEvent> </bpmn:process> <bpmn:message id="Message_0u86xqd" name="camel.answer" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="camel_asynch"> <bpmndi:BPMNShape id="EndEvent_1egevrf_di" bpmnElement="EndEvent_1egevrf"> <dc:Bounds x="848" y="88" width="36" height="36" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="SendTask_1ouqvcf_di" bpmnElement="SendTask_1ouqvcf"> <dc:Bounds x="380" y="66" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0aodgcz_di" bpmnElement="SequenceFlow_0aodgcz"> <di:waypoint x="748" y="106" /> <di:waypoint x="848" y="106" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_1yw1ho6_di" bpmnElement="SequenceFlow_1yw1ho6"> <di:waypoint x="101" y="106" /> <di:waypoint x="380" y="106" /> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="IntermediateCatchEvent_133vikc_di" bpmnElement="IntermediateCatchEvent_133vikc"> <dc:Bounds x="712" y="88" width="36" height="36" /> <bpmndi:BPMNLabel> <dc:Bounds x="687" y="131" width="88" height="27" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_1i1ujc8_di" bpmnElement="SequenceFlow_1i1ujc8"> <di:waypoint x="480" y="106" /> <di:waypoint x="712" y="106" /> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="StartEvent_1cmiw6j_di" bpmnElement="StartEvent_1cmiw6j"> <dc:Bounds x="65" y="88" width="36" height="36" /> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn:definitions>
The Camel routes:
from("direct://asyncService")
.routeId("asyncService")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
Map inMap = (Map)exchange.getIn().getBody();
Map<String, String> kafkaOutParams = new HashMap<>();
kafkaOutParams.put("aggregateSchemaId", inMap.get("aggregateSchemaId?").toString());
kafkaOutParams.put("aggregateInstanceId", inMap.get("aggregateInstanceId?").toString());
exchange.getOut().setBody(kafkaOutParams, Map.class);
exchange.getOut().setHeader(KafkaConstants.KEY,
exchange.getProperties().get(CamundaBpmConstants.EXCHANGE_HEADER_PROCESS_INSTANCE_ID));
}
})
.marshal().json(JsonLibrary.Jackson, Map.class)
.convertBodyTo(String.class)
.to("kafka:localhost:9092?topic=fromCamunda&brokers=localhost:9092");
from("kafka:localhost:9092?topic=toCamunda&groupId=group_id&autoOffsetReset=earliest&consumersCount=1&brokers=localhost:9092")
.routeId("asyncResponse")
.unmarshal().json(JsonLibrary.Jackson, Map.class)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.setProperty(CamundaBpmConstants.EXCHANGE_HEADER_PROCESS_INSTANCE_ID,
exchange.getIn().getHeader(KafkaConstants.KEY));
Map<String,Object> result = new HashMap<>();
result.put("aggregateData", exchange.getIn().getBody());
exchange.getIn().setBody(result, Map.class);
}
})
.to("camunda-bpm:message?messageName=camel.answer©BodyAsVariable=aggregateData");
As far as I understand there's a race condition between the thread in the Camunda process that sends the outgoing Kafka message and the thread that reads the Kafka message and uses the Process Instance ID to find the process to forward the message to.
I.e. when the correlation is done in the second thread the process hasn'd been committed to the DB in the first thread.
Does this theory sound right?
If it doesn't what else could be the problem
Any advice how to fix the issue?
Any help is greatly appreciated!
Thanks,
Andrey.
Changes:
I have demo Spring Boot application with camunda-bpm-camel extention. Process starts normally , but I always get log normal step even camel throw exception. Boundary event never catch exception . I expect log error step execution. What i'm doing wrong ?
Versions
<camunda.spring.boot.starter.version>3.0.0</camunda.spring.boot.starter.version> <spring.boot.version>2.0.2.RELEASE</spring.boot.version> <camunda.version>7.9.0</camunda.version> <camel.version>2.22.2</camel.version> <camunda.camel.version>0.7-SNAPSHOT</camunda.camel.version>
https://github.com/deniskru/testCamelCamundaBoundary.git
i need to add a field using eclipse to json response on get how can i do it using eclipse tools
Hi,
Would you be willing to upgrade this project to Camel 3?
I am willing to provide a pull request with the required changes. I have already forked the repository and made the changes. But I need to test it before I can create the pull request.
Jeroen
The camunda-bpm-camel component's camel.sendTo is internally calling producerTemplate.send()
The send() method is not designed to throw the exception to the caller (camunda-bpm-camel component in this case). This makes it impossible to handle the thrown exception in BPM process. e.g. In case of business errors, I would like to throw BpmnError and create UserTask, In cases of technical error, just rethrow the exception so that the execution gets faulted and retried as per the configuration.
Even if I map different exceptions in my route, the camel always makes it available either as Exchange.getException() if i call send() method or CamelExecutionException if I call sendBody() on producerTemplate.
javadoc of the producerTemplate.send(String endpointUri, Exchange exchange)
Sends the exchange to the given endpoint
Notice: that if the processing of the exchange failed with an Exception it is not thrown from this method, but you can access it from the returned exchange using Exchange.getException().
I think the component needs to change to check the Exchange.getException() and rethow it after calling template.send().
let's see what happens
Hi! I have tried googling around for a solution to this, but I've not found anything so far.
I'm sending data from Camel to Camunda via camunda-bpm://start?...
. At several points it calls Camel endpoints, such as ${camel.sendTo('direct:debug')}
. However, when any of these Camel routes/endpoints throw an exception, the Camunda route proceeds as if nothing wrong has occurred. This will cause issues later in the Camunda route. Setting an 'exception' variable and checking for it after every call to Camel will make the BPMN extremely bloated real quick.
So, in short: Is it possible to cancel a Camunda 'route/run' when one of its calls to Camel throws an exception?
for reproducible builds, this repo should use maven wrapper, which is becoming a de factor standard.
Hi Jan,
This issue is being opened to ask if you would be open to renaming your extension on GitHub via the 'Settings' option to reference Camunda Platform 7 rather than Camunda BPM. (For example: camunda-platform-7-camel) This change will also likely impact any screenshots you have in the README that reference Camunda BPM, and this verbiage will need to also be updated throughout the repo's documentation as a whole if you choose to make these changes. You can also make use of Shields.io badges to indicate which version of Camunda your extension is compatible with.
While it is not a requirement that you rename your extension to align with Camunda Platform 7, we would greatly appreciate it if you could make these changes, and merge them anytime after April 12th, 2022.
if you have any questions or require any assistance, please do not hesitate to reach out to @camunda-community-hub/devrel! :)
Given:
A task which uses 'sendTo' to call a certain Camel route. The response is stored into a process variable 'incrementalFilename'. If the Camel route could not find this incremental file, the out body of the route is null and therefore the newly created process variable stores null as its value.
Afterwards another task of the same process uses 'sendTo' to call another Camel route. This task wants to receive all process variables by using the syntax ${camel.sendTo('direct:myRoute')}.
In this situation an exception with this cause is thrown:
Caused by: java.lang.IllegalArgumentException: Process variable 'incrementalFilename' no found!
at org.camunda.bpm.camel.common.CamelServiceCommonImpl.sendToInternal(CamelServiceCommonImpl.java:66)
at org.camunda.bpm.camel.common.CamelServiceCommonImpl.sendTo(CamelServiceCommonImpl.java:55)
at org.camunda.bpm.camel.common.CamelServiceCommonImpl.sendTo(CamelServiceCommonImpl.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_144]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_144]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_144]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_144]
at org.camunda.bpm.engine.impl.javax.el.BeanELResolver.invoke(BeanELResolver.java:479) [camunda-engine-7.6.3-ee.jar:7.6.3-ee]
... 163 more
What happens? If one requires to get all process variables then simply the sentTo is transformed into the same mode if a list of the current process variables was given as the second parameter. In this mode every process variable is mandetory and therefore the given exception is thrown.
Possible solution:
Treat the situtation "all process variables" in another way and suppress those expection because it might be OK for a process variable to store a null value.
To be discussed:
Create a possiblity to also get named process variables even if they are null because the Camel route deals this.
project is still on jdk8 ... which is unsupported.
Hello! We had to make a few changes to our community's Maven deployment Action. Specifically, we updated the secret names and deployment credentials.
Please update to the latest release, v. 1.2.1, to make sure your Action works. Thank you!
Hey,
Thanks a lot for this project camunda team, it helps so much!
I'm testing camunda-bpm-camel along with my project and I've noticed that camel version supported is 3.0.1. What do you think to update to 3.1.0 or 3.2.0?
Camel 3.3.0 is coming soon https://github.com/apache/camel/releases/tag/camel-3.3.0, so I think it's important to update camunda-bpm-camel asap.
If you want, I could do this myself, but I'd like to listen you first
If a route has to process the result of a process instance startet by the route itself it would be convenient if the process instance's variables were set as body of the out exchange. Of course one has to be aware of building processes which end in expected wait states (end event, async flags, receive task, external task, etc.).
Pull request is coming soon...
Hi folks,
I am evaluating the camunda-bpm-camel library and have run into a problem when I try to make a call to a REST endpoint using a Camel route,
The details are below. Any help is greatly appreciated.
The BPMN:
<?xml version="1.0" encoding="UTF-8"?> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0wxf2ek" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="2.2.4"> <bpmn:collaboration id="camel_parent"> <bpmn:participant id="camel_sync_collaborator" name="Camel Sync" processRef="camel_synch" /> <bpmn:participant id="camel_participant" name="Camel" processRef="camel" /> <bpmn:messageFlow id="MessageFlow_0gwrv3c" sourceRef="camel_participant" targetRef="Task_026uffa" /> <bpmn:messageFlow id="MessageFlow_06rkpd2" sourceRef="Task_026uffa" targetRef="camel_participant" /> </bpmn:collaboration> <bpmn:process id="camel_synch" name="Camel Process" isExecutable="true"> <bpmn:serviceTask id="Task_026uffa" name="Init service external call" camunda:expression="#{camel.sendTo('direct:syncService')}" camunda:resultVariable="data"> <bpmn:incoming>SequenceFlow_0zwsczz</bpmn:incoming> <bpmn:outgoing>SequenceFlow_05zm778</bpmn:outgoing> </bpmn:serviceTask> <bpmn:endEvent id="EndEvent_0d841wv"> <bpmn:incoming>SequenceFlow_05zm778</bpmn:incoming> </bpmn:endEvent> <bpmn:startEvent id="StartEvent_1o5tati"> <bpmn:outgoing>SequenceFlow_0zwsczz</bpmn:outgoing> </bpmn:startEvent> <bpmn:sequenceFlow id="SequenceFlow_05zm778" sourceRef="Task_026uffa" targetRef="EndEvent_0d841wv" /> <bpmn:sequenceFlow id="SequenceFlow_0zwsczz" sourceRef="StartEvent_1o5tati" targetRef="Task_026uffa" /> </bpmn:process> <bpmn:process id="camel" name="Camel" isExecutable="true" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="camel_parent"> <bpmndi:BPMNShape id="Participant_0k0cwwd_di" bpmnElement="camel_sync_collaborator"> <dc:Bounds x="91" y="155" width="1111" height="325" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ServiceTask_0gs39gb_di" bpmnElement="Task_026uffa"> <dc:Bounds x="480" y="225" width="100" height="80" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="EndEvent_0d841wv_di" bpmnElement="EndEvent_0d841wv"> <dc:Bounds x="822" y="247" width="36" height="36" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="StartEvent_1o5tati_di" bpmnElement="StartEvent_1o5tati"> <dc:Bounds x="227" y="247" width="36" height="36" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_05zm778_di" bpmnElement="SequenceFlow_05zm778"> <di:waypoint x="580" y="265" /> <di:waypoint x="822" y="265" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="SequenceFlow_0zwsczz_di" bpmnElement="SequenceFlow_0zwsczz"> <di:waypoint x="263" y="265" /> <di:waypoint x="480" y="265" /> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="Participant_0cq6jhx_di" bpmnElement="camel_participant"> <dc:Bounds x="91" y="-58" width="1079" height="133" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="MessageFlow_0gwrv3c_di" bpmnElement="MessageFlow_0gwrv3c"> <di:waypoint x="629" y="75" /> <di:waypoint x="652" y="135" /> <di:waypoint x="602" y="204" /> <di:waypoint x="576" y="227" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="MessageFlow_06rkpd2_di" bpmnElement="MessageFlow_06rkpd2"> <di:waypoint x="502" y="225" /> <di:waypoint x="435" y="131" /> <di:waypoint x="501" y="75" /> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn:definitions>
The route config:
` from("direct://syncService")
.setHeader(Exchange.HTTP_METHOD, constant("GET"))
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.to("http://localhost:8082/korio-rest/task/getData/aaa")
.routeId("syncService")
.process(new Processor() {
@OverRide
public void process(Exchange exchange) {
Map data = exchange.getIn().getBody(Map.class);
exchange.getOut().setBody(data);
}
});`
The stack trace:
`2019-04-15 00:42:51,139 ERROR o.a.c.p.DefaultErrorHandler [http-nio-8080-exec-7] -> Failed delivery for (MessageId: ID-LAPTOP-9OG51EMC-59853-1555303018782-0-3 on ExchangeId: ID-LAPTOP-9OG51EMC-59853-1555303018782-0-4). Exhausted after delivery attempt: 1 caught: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: {} of type: java.util.HashMap on: Message[ID-LAPTOP-9OG51EMC-59853-1555303018782-0-3]. Caused by: No type converter available to convert from type: java.util.HashMap to the required type: java.io.InputStream with value {}. Exchange[ID-LAPTOP-9OG51EMC-59853-1555303018782-0-4]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: java.util.HashMap to the required type: java.io.InputStream with value {}]
RouteId ProcessorId Processor Elapsed (ms)
[syncService ] [syncService ] [ ] [ 10]
[syncService ] [setHeader1 ] [setHeader[CamelHttpMethod] ] [ 3]
[syncService ] [setHeader2 ] [setHeader[Content-Type] ] [ 2]
[syncService ] [to1 ] [http://localhost:8082/korio-rest/task/getData/aaa ] [ 3]
org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: {} of type: java.util.HashMap on: Message[ID-LAPTOP-9OG51EMC-59853-1555303018782-0-3]. Caused by: No type converter available to convert from type: java.util.HashMap to the required type: java.io.InputStream with value {}. Exchange[ID-LAPTOP-9OG51EMC-59853-1555303018782-0-4]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: java.util.HashMap to the required type: java.io.InputStream with value {}]
at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:107)
at org.apache.camel.component.http.HttpProducer.createRequestEntity(HttpProducer.java:460)
at org.apache.camel.component.http.HttpProducer.createMethod(HttpProducer.java:384)
at org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:95)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:68)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:412)
at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:380)
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:270)
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:380)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:205)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:119)
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:105)
at org.camunda.bpm.camel.common.CamelServiceCommonImpl.sendToInternal(CamelServiceCommonImpl.java:101)
at org.camunda.bpm.camel.common.CamelServiceCommonImpl.sendTo(CamelServiceCommonImpl.java:63)
at org.camunda.bpm.camel.common.CamelServiceCommonImpl.sendTo(CamelServiceCommonImpl.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.camunda.bpm.engine.impl.javax.el.BeanELResolver.invoke(BeanELResolver.java:479)
at org.camunda.bpm.engine.impl.javax.el.CompositeELResolver.invoke(CompositeELResolver.java:397)
at org.camunda.bpm.engine.impl.juel.AstMethod.invoke(AstMethod.java:91)
at org.camunda.bpm.engine.impl.juel.AstMethod.eval(AstMethod.java:75)
at org.camunda.bpm.engine.impl.juel.AstEval.eval(AstEval.java:50)
at org.camunda.bpm.engine.impl.juel.AstNode.getValue(AstNode.java:26)
at org.camunda.bpm.engine.impl.juel.TreeValueExpression.getValue(TreeValueExpression.java:114)
at org.camunda.bpm.engine.impl.delegate.ExpressionGetInvocation.invoke(ExpressionGetInvocation.java:39)
at org.camunda.bpm.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:57)
at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocationInContext(DefaultDelegateInterceptor.java:90)
at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:62)
at org.camunda.bpm.engine.impl.el.JuelExpression.getValue(JuelExpression.java:59)
at org.camunda.bpm.engine.impl.el.JuelExpression.getValue(JuelExpression.java:50)
at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskExpressionActivityBehavior$1.call(ServiceTaskExpressionActivityBehavior.java:49)
at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskExpressionActivityBehavior$1.call(ServiceTaskExpressionActivityBehavior.java:45)
at org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.executeWithErrorPropagation(AbstractBpmnActivityBehavior.java:110)
at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskExpressionActivityBehavior.performExecution(ServiceTaskExpressionActivityBehavior.java:45)
at org.camunda.bpm.engine.impl.bpmn.behavior.TaskActivityBehavior.execute(TaskActivityBehavior.java:68)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:60)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:49)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.continueIfExecutionDoesNotAffectNextOperation(PvmExecutionImpl.java:1988)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:41)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:30)
at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:95)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:127)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:107)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:82)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:640)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:614)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl$6.callback(PvmExecutionImpl.java:1927)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl$6.callback(PvmExecutionImpl.java:1924)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.continueExecutionIfNotCanceled(PvmExecutionImpl.java:1994)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.dispatchDelayedEventsAndPerformOperation(PvmExecutionImpl.java:1943)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.dispatchDelayedEventsAndPerformOperation(PvmExecutionImpl.java:1924)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(PvmAtomicOperationTransitionNotifyListenerStart.java:60)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(PvmAtomicOperationTransitionNotifyListenerStart.java:30)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:67)
at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:95)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:127)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:107)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:82)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:72)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:649)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:624)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:60)
at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:95)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:127)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:107)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:82)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:72)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:649)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:624)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:60)
at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:95)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:127)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:107)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:82)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:640)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:614)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionCreateScope.scopeCreated(PvmAtomicOperationTransitionCreateScope.java:37)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCreateScope.execute(PvmAtomicOperationCreateScope.java:53)
at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCreateScope.execute(PvmAtomicOperationCreateScope.java:27)
at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:95)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:127)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:114)
at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:82)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:640)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:614)
at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.start(PvmExecutionImpl.java:246)
at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:449)
at org.camunda.bpm.engine.impl.cmmn.behavior.ProcessTaskActivityBehavior.triggerCallableElement(ProcessTaskActivityBehavior.java:38)
at org.camunda.bpm.engine.impl.cmmn.behavior.ProcessOrCaseTaskActivityBehavior.performStart(ProcessOrCaseTaskActivityBehavior.java:34)
at org.camunda.bpm.engine.impl.cmmn.behavior.StageOrTaskActivityBehavior.started(StageOrTaskActivityBehavior.java:92)
at org.camunda.bpm.engine.impl.cmmn.operation.AtomicOperationCaseExecutionStart.postTransitionNotification(AtomicOperationCaseExecutionStart.java:50)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.eventNotificationsCompleted(AbstractCmmnEventAtomicOperation.java:43)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.eventNotificationsCompleted(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:67)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperationSync(CaseExecutionEntity.java:896)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:60)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperationSync(CaseExecutionEntity.java:896)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:60)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperation(CaseExecutionEntity.java:891)
at org.camunda.bpm.engine.impl.cmmn.execution.CmmnExecution.start(CmmnExecution.java:989)
at org.camunda.bpm.engine.impl.cmmn.behavior.StageOrTaskActivityBehavior.fireEntryCriteria(StageOrTaskActivityBehavior.java:212)
at org.camunda.bpm.engine.impl.cmmn.behavior.StageOrTaskActivityBehavior.created(StageOrTaskActivityBehavior.java:48)
at org.camunda.bpm.engine.impl.cmmn.operation.AtomicOperationCaseExecutionCreated.execute(AtomicOperationCaseExecutionCreated.java:34)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperation(CaseExecutionEntity.java:891)
at org.camunda.bpm.engine.impl.cmmn.operation.AtomicOperationCaseExecutionCreate.postTransitionNotification(AtomicOperationCaseExecutionCreate.java:49)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.eventNotificationsCompleted(AbstractCmmnEventAtomicOperation.java:43)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.eventNotificationsCompleted(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:67)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperationSync(CaseExecutionEntity.java:896)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:60)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperation(CaseExecutionEntity.java:891)
at org.camunda.bpm.engine.impl.cmmn.execution.CmmnExecution.triggerChildExecutionsLifecycle(CmmnExecution.java:957)
at org.camunda.bpm.engine.impl.cmmn.behavior.StageActivityBehavior.performStart(StageActivityBehavior.java:49)
at org.camunda.bpm.engine.impl.cmmn.behavior.StageOrTaskActivityBehavior.started(StageOrTaskActivityBehavior.java:92)
at org.camunda.bpm.engine.impl.cmmn.operation.AtomicOperationCaseInstanceCreate.postTransitionNotification(AtomicOperationCaseInstanceCreate.java:54)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.eventNotificationsCompleted(AbstractCmmnEventAtomicOperation.java:43)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.eventNotificationsCompleted(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:67)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperationSync(CaseExecutionEntity.java:896)
at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:60)
at org.camunda.bpm.engine.impl.cmmn.operation.AbstractCmmnEventAtomicOperation.execute(AbstractCmmnEventAtomicOperation.java:29)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:105)
at org.camunda.bpm.engine.impl.interceptor.CommandContext$1.call(CommandContext.java:94)
at org.camunda.bpm.engine.impl.interceptor.CommandContext$1.call(CommandContext.java:92)
at org.camunda.bpm.engine.impl.context.ProcessApplicationClassloaderInterceptor.call(ProcessApplicationClassloaderInterceptor.java:47)
at org.camunda.bpm.application.AbstractProcessApplication.execute(AbstractProcessApplication.java:117)
at org.camunda.bpm.application.AbstractProcessApplication.execute(AbstractProcessApplication.java:128)
at org.camunda.bpm.engine.impl.context.Context.executeWithinProcessApplication(Context.java:194)
at org.camunda.bpm.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:92)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.performOperation(CaseExecutionEntity.java:891)
at org.camunda.bpm.engine.impl.cmmn.execution.CmmnExecution.create(CmmnExecution.java:934)
at org.camunda.bpm.engine.impl.cmmn.entity.runtime.CaseExecutionEntity.create(CaseExecutionEntity.java:390)
at org.camunda.bpm.engine.impl.cmmn.cmd.CreateCaseInstanceCmd.execute(CreateCaseInstanceCmd.java:69)
at org.camunda.bpm.engine.impl.cmmn.cmd.CreateCaseInstanceCmd.execute(CreateCaseInstanceCmd.java:38)
at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:27)
at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:106)
at org.camunda.bpm.engine.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:45)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:43)
at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:69)
at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:32)
at org.camunda.bpm.engine.impl.cmmn.CaseInstanceBuilderImpl.create(CaseInstanceBuilderImpl.java:120)
at org.camunda.bpm.engine.impl.cmmn.CaseServiceImpl.createCaseInstanceByKey(CaseServiceImpl.java:200)
at com.korio.dsabackend.service.aggregate.AggregateService.createAggregateInstance(AggregateService.java:108)
at com.korio.dsabackend.restapi.aggregate.AggregateController.createAggregateInstance(AggregateController.java:71)
at com.korio.dsabackend.restapi.aggregate.AggregateController$$FastClassBySpringCGLIB$$e88791ff.invoke()
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.korio.dsabackend.restapi.aggregate.AggregateController$$EnhancerBySpringCGLIB$$87449ec6.createAggregateInstance()
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.camunda.bpm.webapp.impl.security.filter.SecurityFilter.doFilterSecure(SecurityFilter.java:70)
at org.camunda.bpm.webapp.impl.security.filter.SecurityFilter.doFilter(SecurityFilter.java:54)
at org.camunda.bpm.spring.boot.starter.webapp.filter.LazyDelegateFilter.doFilter(LazyDelegateFilter.java:59)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.camunda.bpm.webapp.impl.security.auth.AuthenticationFilter$1.execute(AuthenticationFilter.java:61)
at org.camunda.bpm.webapp.impl.security.auth.AuthenticationFilter$1.execute(AuthenticationFilter.java:59)
at org.camunda.bpm.webapp.impl.security.SecurityActions.runWithAuthentications(SecurityActions.java:43)
at org.camunda.bpm.webapp.impl.security.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:59)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: java.util.HashMap to the required type: java.io.InputStream with value {}
at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:198)
at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:105)
... 248 common frames omitted`
Thanks,
Andrey.
Camel 4.0.0
has been released on 2023-08-14. As of now, this is the current LTS. The next LTS (4.4.0
) is expected to be released in Jan/Feb 2024.
The new release broght some changes. The most notably change is the switch from javax
to jakarta
. But internal APIs of camel changed as well. The most notable changes are listed in the official migration guide (camel.apache.org
).
It is desirable to support Camel in version 4.0.0
.
${camel.sendTo('direct:non-existing-route')}
should at least create a warning if not an exception.
Facing this issue powermock/powermock#901
just found this comment somewhere else : "So happy to see Powermock go, finally "
It annoys me as well, so let's get rid of it.
This project still uses the old release parent and some fancy travis/jenkins builds, let's use the hub defaults
Please release a fix version from the project. It seems to be stable enough, but we need a released version for using it.
I was planning on using camunda with camel for some time and now have a concrete use case for async external tasks ... and see the badge "deprecated".
@berndruecker may be you can answer this: What is the state of this project?
All java files in camunda-bpm-camel-blueprint are not subfixed by .java extension.
See @berndruecker s comment on #73 : let us focus on core, spring (and spring boot) first.
I think a good way to do so is by resolving the modules for osgi/blueprint and cdi only by manually activating the maven profiles, so they are skipped unless needed again.
Referencing my Forum post: https://forum.camunda.org/t/what-is-issue-36-introduce-optional-variables-in-the-camunda-camel-extension/11453
If the process calls the camel service bean with no explicit variables, in the past, all the process variables were put into the Camel exchange as name-value pairs in a Map in the Body. We use this capability to decouple our Camel routes from our Camunda processes. The routes can pick whichever variables they want to use from the set of all process variables in the process execution, instead of being told what they can have by the call to the Camel service bean from that process.
There is a commit; 87322c8 which is part of pull request 37 (#37), which is titled ’ Issue 36: Introduce optional variables’. This change seems to be a breaking change to the Camel service bean, which has changed all the names of the process variables being implicitly fetched from the process execution by appending '?'. What is the intent of this? AFAIK, this should be a defect, since the documentation doesn't tell me why I should rename all the process variables that we use in all our Camel routes to have a '?' on the end, so that I can upgrade to version 0.6.
Sadly, I also need to do the upgrade because 0.5 seems to be responsible for the asyncResponseTimeout in the REST ExternalTask API 'fetchAndLock' not working properly. See my earlier forum post https://forum.camunda.org/t/fetchandlock-using-asyncresponsetimeout-returns-empty-body/9511
to be able to use the latest supported spring boot version (see #78 ) we should bring the extension to camunda 7.16.
Hi, i follow the instructor for the readme page with indicate that the form for pass variable to a camel route.
The code is: "${camel.sendTo('direct:llamarPrueba', 'request')}"
Here, i call the route "llamarPrueba" and send the variable request.
The camel route is this: from("direct:llamarPrueba") .routeId(ROUTE_NAME) .marshal(marshaller) .to("spring-ws:http://localhost:8081/ws") .unmarshal(marshaller);
But when the marshal tried to process the variable, throw:
java.io.IOException: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: java.util.HashMap to the required type: java.io.InputStream with value {request=com.example.demo.cliente.GetCountryRequest@1922e2c1}
How i get only the value of 'request' for make the soap request properly?
Please adjust the maven groupId
to the naming scheme proposed here:
https://groups.google.com/forum/#!topic/camunda-bpm-dev/0VQS9z0ZxWU
Suggestion: org.camunda.bpm.extension
I have a spring boot application with camel and camunda integration.
https://github.com/larbigj/camunda-camel-boot
I can start a camunda process with a camel route but when I try to call a camel route from the
process I get an exception org.camunda.bpm.engine.impl.javax.el.PropertyNotFoundException: Cannot find property camel
A bean with name camel as mentioned in the documentation is available
@bean(name = "camel")
public CamelServiceImpl camel() {
CamelServiceImpl camelServiceImpl = new CamelServiceImpl();
camelServiceImpl.setCamelContext(camelContext);
camelServiceImpl.setProcessEngine(processEngine);
return camelServiceImpl;
}
Regards
Jörg
A user created a pull request in the bpm platform to fix a security vulnurability where a maven repository was accessed via HTTP instead of HTTPS. This can be exploited via Man-In-The-Middle attacks.
While scanning our other GitHub repositories for similar issues, I saw that camunda-bpm-camel is also accessing a maven repository via HTTP. (here) Consider accessing the repository via HTTPS. (It's redirecting to HTTPS anyways)
Find more information in the linked PR. :)
Hi,
I try to use the Camel integration inside Camunda with Blueprint. For more information, I create a ProcessApplication with the annotation and I declare the process engine via processes.xml.
And for sure, I create the specific EL resolver for Camel:
It seems that the ProcessApplicationElResolverDelegate doesn't find the ProcessApplicationReference. Context.getCurrentProcessApplication() returns null.
Any idea? Missing configuration?
I see that the ProcessApplicationReference is expected to be stored in a ThreadLocal, but for each request it's a different thread...
fest assertions are deprecated, assertj is the "new" lib we should use.
Using the attribute "async=true" on "poll-externalTasks" routes and resolve the task in the same route gives the error mentioned in the subject.
Example route:
from("camunda-bpm:poll-externalTasks"
+ "?topic=LongRunningTask"
+ "&async=true"
+ "&lockDuration=6h"
+ "&scheduler=#LongRunningScheduler")
.threads()
.bean(LongRunningTask.class.getSimpleName(), "doIt")
.to("camunda-bpm://async-externalTask");
Hi guys,
I'm trying to upgrade a camunda 7.8.0 project to the 7.9.0 release. As of the release notes, I also upgraded from 1.5.10.RELEASE ro the latest 2.c spring boot release.
The 7.9.0 project I have uses this camel-camunda integration -- it's working great!
However, when I switch to 7.9.0/spring boot 2.0.2.RELEASE, I get the following error:
2018-05-29 17:59:26.685 ERROR 11000 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.nexiles.camundacamel.CamundaCamelApplication]; nested exception is java.lang.IllegalStateException: Could not evaluate condition on org.apache.camel.spring.boot.health.HealthCheckRoutesAutoConfiguration due to org/springframework/boot/bind/RelaxedPropertyResolver not found. Make sure your own configuration does not rely on that class. This can also happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)
Is 7.9.0/spring boot 2.0 even supported? Am I missing something before going deeper?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.