camunda-community-hub / camunda-platform-7-camel

Community Extension to add Apache Camel support for Camunda Platform 7
Apache License 2.0
82 stars 57 forks source link

Getting an error trying to call a REST endpoint via Camel from a BPMN process #50

Closed ashulinskiy closed 5 years ago

ashulinskiy commented 5 years ago

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"?>

SequenceFlow_0zwsczz SequenceFlow_05zm778 SequenceFlow_05zm778 SequenceFlow_0zwsczz ` 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 {}] Message History --------------------------------------------------------------------------------------------------------------------------------------- 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] Stacktrace --------------------------------------------------------------------------------------------------------------------------------------- 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.
stephanpelikan commented 5 years ago

This is not an issue of Camel and not of camunda-bpm-camel.

You get a Map of process instance variables as in.body as mentioned the README: https://github.com/camunda/camunda-bpm-camel/blob/master/README.md#calling-a-camel-endpoint-service

But for using the rest endpoint you need to provide an InputStream. Therefore you have to provide a converter.

See: http://camel.apache.org/type-converter.html

Maybe this is something you are looking for: http://people.apache.org/~dkulp/camel/json.html

ashulinskiy commented 5 years ago

Hi Stephan,

Thanks a lot for the prompt reply.

I don't have any variables: #{camel.sendTo('direct:syncService')}

It is a GET request to http://localhost:8082/korio-rest/task/getData/aaa - so no body either.

The call's result would need to be converted sure, however the issue is with doing the call, not processing the result. So I am not clear on what do I need to convert when I do the call sorry.

I am looking at the links you have provided to get some insight.

If you could clarify further it would be great of course.

Thanks, Andrey.

ashulinskiy commented 5 years ago

An update - JSON marshaling did help.

Thanks again!

berndruecker commented 5 years ago

Thanks @stephanpelikan for the quick reply!