Unable to load process definition - couldn't instantiate HttpActivityBehaviorImpl

Hello,

I’m beginning to use Flowable and have a basic process defined that contains an HTTP call. When I try to view the process definition in flowable-admin, I get a “couldn’t instantiate class org.flowable.http.impl.HttpActivityBehaviorImpl” error in the UI.

The Tomcat log is below. The NPE at the end is because “Context.getProcessEngineConfiguration()” in the HttpActivityBehaviorImpl constructor is null. I’m not sure if there is a configuration step I’m missing, but that seems unlikely since it’s just the admin application.

Any ideas?

08:42:28,194 [http-nio-8080-exec-24] ERROR org.flowable.admin.app.rest.client.ModelsClientResource  - Error getting process definition aProcess:3:27504
org.flowable.admin.service.engine.exception.FlowableServiceException: couldn't instantiate class org.flowable.http.impl.HttpActivityBehaviorImpl
	at org.flowable.admin.service.engine.FlowableClientService.executeRequest(FlowableClientService.java:143)
	at org.flowable.admin.service.engine.FlowableClientService.executeRequest(FlowableClientService.java:111)
	at org.flowable.admin.service.engine.FlowableClientService.executeRequest(FlowableClientService.java:107)
	at org.flowable.admin.service.engine.ProcessDefinitionService.getProcessDefinition(ProcessDefinitionService.java:76)
	at org.flowable.admin.app.rest.client.ProcessDefinitionClientResource.getProcessDefinition(ProcessDefinitionClientResource.java:64)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.flowable.app.filter.FlowableCookieFilter.doFilterInternal(FlowableCookieFilter.java:154)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	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:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
08:42:29,772 [http-nio-8080-exec-19] ERROR org.flowable.rest.exception.BaseExceptionHandlerAdvice  - Unhandled exception
org.flowable.engine.common.api.FlowableException: couldn't instantiate class org.flowable.http.impl.HttpActivityBehaviorImpl
	at org.flowable.engine.impl.util.ReflectUtil.instantiate(ReflectUtil.java:139)
	at org.flowable.engine.impl.bpmn.helper.AbstractClassDelegate.defaultInstantiateDelegate(AbstractClassDelegate.java:64)
	at org.flowable.engine.impl.bpmn.helper.AbstractClassDelegate.defaultInstantiateDelegate(AbstractClassDelegate.java:56)
	at org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory.createHttpActivityBehavior(DefaultActivityBehaviorFactory.java:308)
	at org.flowable.engine.impl.bpmn.parser.handler.HttpServiceTaskParseHandler.executeParse(HttpServiceTaskParseHandler.java:34)
	at org.flowable.engine.impl.bpmn.parser.handler.HttpServiceTaskParseHandler.executeParse(HttpServiceTaskParseHandler.java:25)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:59)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractActivityBpmnParseHandler.parse(AbstractActivityBpmnParseHandler.java:33)
	at org.flowable.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.processFlowElements(BpmnParse.java:311)
	at org.flowable.engine.impl.bpmn.parser.handler.SubProcessParseHandler.executeParse(SubProcessParseHandler.java:32)
	at org.flowable.engine.impl.bpmn.parser.handler.SubProcessParseHandler.executeParse(SubProcessParseHandler.java:22)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:59)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractActivityBpmnParseHandler.parse(AbstractActivityBpmnParseHandler.java:33)
	at org.flowable.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.processFlowElements(BpmnParse.java:311)
	at org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler.transformProcess(ProcessParseHandler.java:74)
	at org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler.executeParse(ProcessParseHandler.java:47)
	at org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler.executeParse(ProcessParseHandler.java:33)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:59)
	at org.flowable.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.applyParseHandlers(BpmnParse.java:282)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:195)
	at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.createBpmnParseFromResource(ParsedDeploymentBuilder.java:94)
	at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.build(ParsedDeploymentBuilder.java:53)
	at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:72)
	at org.flowable.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:60)
	at org.flowable.engine.impl.persistence.deploy.DeploymentManager.resolveProcessDefinition(DeploymentManager.java:128)
	at org.flowable.engine.impl.persistence.deploy.DeploymentManager.findDeployedProcessDefinitionById(DeploymentManager.java:78)
	at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:50)
	at org.flowable.engine.impl.util.ProcessDefinitionUtil.getProcessDefinition(ProcessDefinitionUtil.java:36)
	at org.flowable.engine.impl.util.Flowable5Util.isFlowable5ProcessDefinitionId(Flowable5Util.java:41)
	at org.flowable.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:51)
	at org.flowable.engine.impl.cmd.DeleteProcessInstanceCmd.execute(DeleteProcessInstanceCmd.java:29)
	at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:44)
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:86)
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:65)
	at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:49)
	at org.flowable.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:51)
	at org.flowable.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:61)
	at org.flowable.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
	at org.flowable.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
	at org.flowable.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
	at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)
	at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)
	at org.flowable.engine.impl.RuntimeServiceImpl.deleteProcessInstance(RuntimeServiceImpl.java:146)
	at org.flowable.rest.service.api.runtime.process.ProcessInstanceResource.deleteProcessInstance(ProcessInstanceResource.java:64)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:894)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:667)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	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:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at org.flowable.http.impl.HttpActivityBehaviorImpl.<init>(HttpActivityBehaviorImpl.java:87)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at org.flowable.engine.impl.util.ReflectUtil.instantiate(ReflectUtil.java:137)
	... 118 more

Hi,

are you using the latest code revision?
This was fixed in https://github.com/flowable/flowable-engine/pull/459 .

edit: Looking at the stacktrace this could be another issue. Could you share the process definition?

Regards,

Yvo

I am using 6.1.0. I did end up having to include the flowable-http jar in my Tomcat lib directory to get around the issue you linked.

Here is the process definition. I don’t know how valid the actual logic is – got hung up on this when debugging :slight_smile:

Thanks for your help!

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="Examples">
  <signal id="checkFOObarExistence" name="Check FOO bar existence" flowable:scope="global"></signal>
  <process id="submitBarToFOO" name="Submit Bar to FOO" isExecutable="true">
    <startEvent id="theStart"></startEvent>
    <serviceTask id="formSubmit" name="Submit form to FOO" flowable:delegateExpression="${service}"></serviceTask>
    <serviceTask id="submissionSentEmail" name="Submission sent" flowable:async="true" flowable:exclusive="false" flowable:type="mail">
      <extensionElements>
        <flowable:field name="to">
          <flowable:string><![CDATA[aeou@example.com]]></flowable:string>
        </flowable:field>
        <flowable:field name="from">
          <flowable:string><![CDATA[aeou@example.com]]></flowable:string>
        </flowable:field>
        <flowable:field name="subject">
          <flowable:expression><![CDATA[Bar sent to FOO]]></flowable:expression>
        </flowable:field>
        <flowable:field name="text">
          <flowable:expression><![CDATA[${payload}]]></flowable:expression>
        </flowable:field>
      </extensionElements>
    </serviceTask>
    <sequenceFlow id="flow1" sourceRef="theStart" targetRef="formSubmit"></sequenceFlow>
    <sequenceFlow id="sid-D284A581-21BC-4D96-8E92-B5F08CF093A7" sourceRef="formSubmit" targetRef="submissionSentEmail"></sequenceFlow>
    <boundaryEvent id="submissionDelay" name="Submission Delay" attachedToRef="submissionSentEmail" fooncelActivity="true">
      <timerEventDefinition>
        <timeDuration>PT1M</timeDuration>
      </timerEventDefinition>
    </boundaryEvent>
    <sequenceFlow id="sid-28546BEF-089A-4FDF-A1A3-D4ADC4000E3B" sourceRef="submissionDelay" targetRef="waitForFOObar"></sequenceFlow>
    <subProcess id="waitForFOObar" name="Check for FOO bar existence">
      <serviceTask id="doesBarExist" name="Check DB" flowable:type="http">
        <extensionElements>
          <flowable:field name="requestMethod">
            <flowable:string><![CDATA[GET]]></flowable:string>
          </flowable:field>
          <flowable:field name="requestUrl">
            <flowable:expression><![CDATA[${dbURL}]]></flowable:expression>
          </flowable:field>
        </extensionElements>
      </serviceTask>
      <serviceTask id="barFoundEmail" name="Bar found in FOO" flowable:async="true" flowable:exclusive="false" flowable:type="mail">
        <extensionElements>
          <flowable:field name="to">
            <flowable:string><![CDATA[aeou@example.com]]></flowable:string>
          </flowable:field>
          <flowable:field name="from">
            <flowable:string><![CDATA[aeou@example.com]]></flowable:string>
          </flowable:field>
          <flowable:field name="subject">
            <flowable:expression><![CDATA[Bar found in FOO]]></flowable:expression>
          </flowable:field>
          <flowable:field name="text">
            <flowable:expression><![CDATA[${doesBarExist.responseBody}]]></flowable:expression>
          </flowable:field>
        </extensionElements>
      </serviceTask>
      <endEvent id="sid-82237233-7597-4A1F-8F4D-8648C932A1E0"></endEvent>
      <startEvent id="sid-9BF6B973-ACCF-4201-83C2-74910FFFC8D4"></startEvent>
      <intermediateFoOtchEvent id="sid-D301F9D3-CDA7-42D6-84AD-893250587273">
        <timerEventDefinition>
          <timeDuration>PT1M</timeDuration>
        </timerEventDefinition>
      </intermediateFoOtchEvent>
      <intermediateThrowEvent id="throwRecheckBarSignal">
        <signalEventDefinition signalRef="checkFOObarExistence"></signalEventDefinition>
      </intermediateThrowEvent>
      <endEvent id="sid-239B7577-A684-4B57-974D-2812DDC2B36C"></endEvent>
      <sequenceFlow id="sid-3B6C76BA-2638-4A26-8C2D-41A21859FA02" sourceRef="sid-9BF6B973-ACCF-4201-83C2-74910FFFC8D4" targetRef="doesBarExist"></sequenceFlow>
      <sequenceFlow id="sid-19002158-E370-488D-844D-00F673F054AF" sourceRef="barFoundEmail" targetRef="sid-82237233-7597-4A1F-8F4D-8648C932A1E0"></sequenceFlow>
      <sequenceFlow id="sid-1174DA8B-D1E2-46A4-8472-5A61F9299375" name="Bar exists in FOO" sourceRef="doesBarExist" targetRef="barFoundEmail">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${doesBarExist.responseStatusCode == 200}]]></conditionExpression>
      </sequenceFlow>
      <sequenceFlow id="sid-F5FA12DD-5B3C-4259-87EE-34CF0AD5AD55" sourceRef="doesBarExist" targetRef="sid-D301F9D3-CDA7-42D6-84AD-893250587273">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${doesBarExist.responseStatusCode != 200}]]></conditionExpression>
      </sequenceFlow>
      <sequenceFlow id="sid-C0E8E647-9F3E-4824-A3F7-3E87E27D3FE2" sourceRef="sid-D301F9D3-CDA7-42D6-84AD-893250587273" targetRef="throwRecheckBarSignal"></sequenceFlow>
      <sequenceFlow id="sid-C4075EFOO-2320-459A-98C3-9F68ACEABAF7" sourceRef="throwRecheckBarSignal" targetRef="sid-239B7577-A684-4B57-974D-2812DDC2B36C"></sequenceFlow>
    </subProcess>
    <endEvent id="sid-66757553-1ED3-412E-B6D5-98C458C6BD87"></endEvent>
    <sequenceFlow id="sid-494C8D33-1D9A-4B83-BD01-72728D895890" sourceRef="waitForFOObar" targetRef="sid-66757553-1ED3-412E-B6D5-98C458C6BD87"></sequenceFlow>
    <startEvent id="sid-D92D6720-DC66-4EAE-A87D-A4FOO45D8CC68" isInterrupting="true">
      <signalEventDefinition signalRef="checkFOObarExistence"></signalEventDefinition>
    </startEvent>
    <sequenceFlow id="sid-A876819A-06F2-4EF1-8EAF-BF3F7D405E08" sourceRef="sid-D92D6720-DC66-4EAE-A87D-A4FOO45D8CC68" targetRef="waitForFOObar"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_submitBarToFOO">
    <bpmndi:BPMNPlane bpmnElement="submitBarToFOO" id="BPMNPlane_submitBarToFOO">
      <bpmndi:BPMNShape bpmnElement="theStart" id="BPMNShape_theStart">
        <omgdc:Bounds height="30.0" width="30.0" x="75.0" y="60.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="formSubmit" id="BPMNShape_formSubmit">
        <omgdc:Bounds height="80.0" width="100.0" x="165.0" y="35.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="submissionSentEmail" id="BPMNShape_submissionSentEmail">
        <omgdc:Bounds height="80.0" width="100.0" x="315.0" y="35.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="submissionDelay" id="BPMNShape_submissionDelay">
        <omgdc:Bounds height="31.0" width="31.0" x="374.17064065612146" y="99.50644430722397"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="waitForFOObar" id="BPMNShape_waitForFOObar">
        <omgdc:Bounds height="289.0" width="639.5" x="465.0" y="60.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="doesBarExist" id="BPMNShape_doesBarExist">
        <omgdc:Bounds height="80.0" width="100.0" x="600.0" y="105.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="barFoundEmail" id="BPMNShape_barFoundEmail">
        <omgdc:Bounds height="80.0" width="100.0" x="855.0" y="105.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-82237233-7597-4A1F-8F4D-8648C932A1E0" id="BPMNShape_sid-82237233-7597-4A1F-8F4D-8648C932A1E0">
        <omgdc:Bounds height="28.0" width="28.0" x="1020.0" y="131.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-9BF6B973-ACCF-4201-83C2-74910FFFC8D4" id="BPMNShape_sid-9BF6B973-ACCF-4201-83C2-74910FFFC8D4">
        <omgdc:Bounds height="30.0" width="30.0" x="499.0" y="130.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-D301F9D3-CDA7-42D6-84AD-893250587273" id="BPMNShape_sid-D301F9D3-CDA7-42D6-84AD-893250587273">
        <omgdc:Bounds height="31.0" width="31.0" x="634.5" y="234.5"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="throwRecheckBarSignal" id="BPMNShape_throwRecheckBarSignal">
        <omgdc:Bounds height="30.0" width="30.0" x="735.0" y="235.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-239B7577-A684-4B57-974D-2812DDC2B36C" id="BPMNShape_sid-239B7577-A684-4B57-974D-2812DDC2B36C">
        <omgdc:Bounds height="28.0" width="28.0" x="840.0" y="236.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-66757553-1ED3-412E-B6D5-98C458C6BD87" id="BPMNShape_sid-66757553-1ED3-412E-B6D5-98C458C6BD87">
        <omgdc:Bounds height="28.0" width="28.0" x="1032.5" y="478.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-D92D6720-DC66-4EAE-A87D-A4FOO45D8CC68" id="BPMNShape_sid-D92D6720-DC66-4EAE-A87D-A4FOO45D8CC68">
        <omgdc:Bounds height="30.0" width="30.0" x="309.75" y="226.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="sid-1174DA8B-D1E2-46A4-8472-5A61F9299375" id="BPMNEdge_sid-1174DA8B-D1E2-46A4-8472-5A61F9299375">
        <omgdi:waypoint x="700.0" y="145.0"></omgdi:waypoint>
        <omgdi:waypoint x="855.0" y="145.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-C0E8E647-9F3E-4824-A3F7-3E87E27D3FE2" id="BPMNEdge_sid-C0E8E647-9F3E-4824-A3F7-3E87E27D3FE2">
        <omgdi:waypoint x="666.4997979887253" y="250.41959900508178"></omgdi:waypoint>
        <omgdi:waypoint x="735.0001893855701" y="250.07537593273582"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-A876819A-06F2-4EF1-8EAF-BF3F7D405E08" id="BPMNEdge_sid-A876819A-06F2-4EF1-8EAF-BF3F7D405E08">
        <omgdi:waypoint x="339.70300123354565" y="239.81351185864256"></omgdi:waypoint>
        <omgdi:waypoint x="465.0" y="229.87146739130435"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
        <omgdi:waypoint x="105.0" y="75.0"></omgdi:waypoint>
        <omgdi:waypoint x="165.0" y="75.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-3B6C76BA-2638-4A26-8C2D-41A21859FA02" id="BPMNEdge_sid-3B6C76BA-2638-4A26-8C2D-41A21859FA02">
        <omgdi:waypoint x="529.0" y="145.0"></omgdi:waypoint>
        <omgdi:waypoint x="600.0" y="145.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-F5FA12DD-5B3C-4259-87EE-34CF0AD5AD55" id="BPMNEdge_sid-F5FA12DD-5B3C-4259-87EE-34CF0AD5AD55">
        <omgdi:waypoint x="650.0" y="185.0"></omgdi:waypoint>
        <omgdi:waypoint x="650.0" y="234.5"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-494C8D33-1D9A-4B83-BD01-72728D895890" id="BPMNEdge_sid-494C8D33-1D9A-4B83-BD01-72728D895890">
        <omgdi:waypoint x="916.3078260869565" y="349.0"></omgdi:waypoint>
        <omgdi:waypoint x="1037.0749664017412" y="481.64776634384185"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-C4075EFOO-2320-459A-98C3-9F68ACEABAF7" id="BPMNEdge_sid-C4075EFOO-2320-459A-98C3-9F68ACEABAF7">
        <omgdi:waypoint x="765.0" y="250.0"></omgdi:waypoint>
        <omgdi:waypoint x="840.0" y="250.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-28546BEF-089A-4FDF-A1A3-D4ADC4000E3B" id="BPMNEdge_sid-28546BEF-089A-4FDF-A1A3-D4ADC4000E3B">
        <omgdi:waypoint x="405.7785886259637" y="119.02666591540388"></omgdi:waypoint>
        <omgdi:waypoint x="465.0" y="132.38348209576313"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-19002158-E370-488D-844D-00F673F054AF" id="BPMNEdge_sid-19002158-E370-488D-844D-00F673F054AF">
        <omgdi:waypoint x="955.0" y="145.0"></omgdi:waypoint>
        <omgdi:waypoint x="1020.0" y="145.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-D284A581-21BC-4D96-8E92-B5F08CF093A7" id="BPMNEdge_sid-D284A581-21BC-4D96-8E92-B5F08CF093A7">
        <omgdi:waypoint x="265.0" y="75.0"></omgdi:waypoint>
        <omgdi:waypoint x="315.0" y="75.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

Hi.

I’m having trouble reproducing the issue.
Could you explain the steps you’ve taken before you encounter this issue?
(Where did you deploy from. And deployed to Flowable task app / Flowable REST app. etc.)

Regards,

Yvo

I started by following the instructions here to get the Flowable UI applications set up: http://www.flowable.org/docs/userguide/index.html#uiAppInstallation

I didn’t have Tomcat installed, so I installed 8.5.16 (Windows 64-bit).
I then downloaded the Flowable 6.1.0 zip (https://github.com/flowable/flowable-engine/releases/download/flowable-6.1.0/flowable-6.1.0.zip) and copied flowable-admin.war, flowable-idm,war, flowable-modeler.war, flowable-rest.war, and flowable-task.war to the Tomcat webapps directory

I then copied flowable-ui-app.properties from webapps\flowable-admin\WEB-INF\classes\META-INF\flowable-ui-app to the Tomcat lib directory and changed the datasource.username, datasource.password, datasource.driver, and datasource.url properties to point to a database I am using for my Spring Boot application (described at the end).

After starting Tomcat and poking around in the Admin UI, I saw exceptions like this:

org.flowable.admin.service.engine.exception.FlowableServiceException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/flowable/engine/impl/bpmn/behavior/AbstractBpmnActivityBehavior
	at org.flowable.admin.service.engine.FlowableClientService.executeRequest(FlowableClientService.java:143)
	at org.flowable.admin.service.engine.FlowableClientService.executeRequest(FlowableClientService.java:111)
	at org.flowable.admin.service.engine.FlowableClientService.executeRequest(FlowableClientService.java:107)
	at org.flowable.admin.service.engine.ProcessDefinitionService.getProcessDefinition(ProcessDefinitionService.java:76)
	at org.flowable.admin.app.rest.client.ProcessDefinitionClientResource.getProcessDefinition(ProcessDefinitionClientResource.java:64)

I went back and forth adding jars from the flowable zip’s lib directory trying to clear these up and ended up copying these jars to the Tomcat lib directory:

  • commons-logging-1.2.jar
  • httpcore-4.4.6.jar
  • httpclient-4.5.3.jar
  • flowable-bpmn-converter-6.1.0.jar
  • flowable-bpmn-layout-6.1.0.jar
  • flowable-bpmn-model-6.1.0.jar
  • flowable-engine-6.1.0.jar
  • flowable-engine-common-6.1.0.jar
  • flowable-engine-common-api-6.1.0.jar
  • flowable-http-6.1.0.jar

Some of these, like the Apache jars, I grabbed from a Maven repository. I likely copied a couple more than necessary since I really just wanted to get it working.

The application that actually starts the processes is a separate Spring Boot application. In that application, I include flowable-spring-boot-starter-basic and flowable-http in the pom. I use startProcessInstanceByKey in the RuntimeService to start the process provided earlier. This part appears to work – I see my JavaDelegate called and the side effects of my workflow are apparent (e.g., I get the emails I expect).

Again, totally new to all of this. Having to add the jars to the Tomcat libs directory surprised me since it wasn’t mentioned (I assumed the wars would have the dependencies). I am intending to use the UI applications to monitor what is going on with the Spring Boot application and clean up data as necessary.

I appreciate your time!

I am having the same issue about not finding the cllass. I was using Flowable 6.0, now I am trying to change to flowable 6.1.
But appart from that version difference it seems that the flowable-http.jar that is distributied in the downloadable pack has a lib folder that needs to be include in the tomcat lib directory. I will try this aproach and give my feedback on this shortly.

Here is the error when deploying:

02:34:52,609 [http-nio-8228-exec-2] ERROR org.flowable.app.service.editor.AppDefinitionPublishService  - Invalid deploy result code: HTTP/1.1 500 
02:35:07,375 [http-nio-8228-exec-6] ERROR org.flowable.rest.exception.BaseExceptionHandlerAdvice  - Unhandled exception
org.flowable.engine.common.api.FlowableException: Could not find org.flowable.http.HttpActivityBehavior: 
	at org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory.createHttpActivityBehavior(DefaultActivityBehaviorFactory.java:311)
	at org.flowable.engine.impl.bpmn.parser.handler.HttpServiceTaskParseHandler.executeParse(HttpServiceTaskParseHandler.java:34)
	at org.flowable.engine.impl.bpmn.parser.handler.HttpServiceTaskParseHandler.executeParse(HttpServiceTaskParseHandler.java:25)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:59)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractActivityBpmnParseHandler.parse(AbstractActivityBpmnParseHandler.java:33)
	at org.flowable.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.processFlowElements(BpmnParse.java:311)
	at org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler.transformProcess(ProcessParseHandler.java:74)
	at org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler.executeParse(ProcessParseHandler.java:47)
	at org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler.executeParse(ProcessParseHandler.java:33)
	at org.flowable.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler.parse(AbstractBpmnParseHandler.java:59)
	at org.flowable.engine.impl.bpmn.parser.BpmnParseHandlers.parseElement(BpmnParseHandlers.java:79)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.applyParseHandlers(BpmnParse.java:282)
	at org.flowable.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:195)
	at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.createBpmnParseFromResource(ParsedDeploymentBuilder.java:94)
	at org.flowable.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.build(ParsedDeploymentBuilder.java:53)
	at org.flowable.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:72)
	at org.flowable.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:60)
	at org.flowable.engine.impl.cmd.DeployCmd.executeDeploy(DeployCmd.java:117)
	at org.flowable.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:67)
	at org.flowable.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:41)
	at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:44)
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:86)
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:65)
	at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:49)
	at org.flowable.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:51)
	at org.flowable.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:61)
	at org.flowable.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
	at org.flowable.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
	at org.flowable.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
	at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)
	at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)
	at org.flowable.engine.impl.RepositoryServiceImpl.deploy(RepositoryServiceImpl.java:93)
	at org.flowable.engine.impl.repository.DeploymentBuilderImpl.deploy(DeploymentBuilderImpl.java:188)
	at org.flowable.rest.service.api.repository.DeploymentCollectionResource.uploadDeployment(DeploymentCollectionResource.java:190)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	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:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.flowable.http.impl.HttpActivityBehaviorImpl
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.flowable.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory.createHttpActivityBehavior(DefaultActivityBehaviorFactory.java:303)
	... 106 more
02:35:07,375 [http-nio-8228-exec-3] ERROR org.flowable.app.service.editor.AppDefinitionPublishService  - Invalid deploy result code: HTTP/1.1 500

Hi.

It’s a known issue that flowable-http.jar is not included. It is fixed in the upcoming 6.1.1 release.
But you should not copy all the other jars you mention in your previous post. These are included in the wars.

Regards,

Yvo

Thanks yvo, as you suggest, I include the flowable-http.jar inside my modeler and task wars, and the no class found is resolved.

In the log I see that is initialized ok

12:30:33,293 [http-nio-8080-exec-19] INFO org.flowable.http.impl.HttpActivityBehaviorImpl - HTTP client is initialized

but then I run my task I get this other error:

Caused by: java.lang.IllegalArgumentException: Source string may not be null
at org.apache.http.util.Args.notNull(Args.java:54)
at org.apache.http.entity.StringEntity.(StringEntity.java:65)
at org.apache.http.entity.StringEntity.(StringEntity.java:146)
at org.flowable.http.impl.HttpActivityBehaviorImpl.perform(HttpActivityBehaviorImpl.java:160)
at org.flowable.http.HttpActivityBehavior.execute(HttpActivityBehavior.java:137)

here is the comple log fragment where i am executin my testAppMail.app and get the error

12:30:33,293 [http-nio-8080-exec-19] INFO  org.flowable.http.impl.HttpActivityBehaviorImpl  - HTTP client is initialized
12:30:33,413 [http-nio-8080-exec-19] INFO  org.flowable.engine.impl.app.AppDeployer  - Processing app resource testAppMail.app
12:31:20,633 [http-nio-8080-exec-11] ERROR org.flowable.rest.exception.BaseExceptionHandlerAdvice  - Unhandled exception
org.flowable.engine.common.api.FlowableException: Error occurred while processing http task in execution 9
	at org.flowable.http.HttpActivityBehavior.execute(HttpActivityBehavior.java:200)
	at org.flowable.engine.impl.agenda.ContinueProcessOperation.executeActivityBehavior(ContinueProcessOperation.java:231)
	at org.flowable.engine.impl.agenda.ContinueProcessOperation.executeSynchronous(ContinueProcessOperation.java:152)
	at org.flowable.engine.impl.agenda.ContinueProcessOperation.continueThroughFlowNode(ContinueProcessOperation.java:109)
	at org.flowable.engine.impl.agenda.DebugContinueProcessOperation.continueThroughFlowNode(DebugContinueProcessOperation.java:50)
	at org.flowable.engine.impl.agenda.ContinueProcessOperation.continueThroughSequenceFlow(ContinueProcessOperation.java:277)
	at org.flowable.engine.impl.agenda.ContinueProcessOperation.run(ContinueProcessOperation.java:75)
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:81)
	at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:65)
	at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:49)
	at org.flowable.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:51)
	at org.flowable.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:61)
	at org.flowable.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
	at org.flowable.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
	at org.flowable.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
	at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)
	at org.flowable.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)
	at org.flowable.engine.impl.RuntimeServiceImpl.startProcessInstanceWithForm(RuntimeServiceImpl.java:138)
	at org.flowable.app.service.runtime.FlowableProcessInstanceService.startNewProcessInstance(FlowableProcessInstanceService.java:126)
	at org.flowable.app.service.runtime.FlowableProcessInstanceService$$FastClassBySpringCGLIB$$c8366971.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
	at org.flowable.app.service.runtime.FlowableProcessInstanceService$$EnhancerBySpringCGLIB$$2d29cde3.startNewProcessInstance(<generated>)
	at org.flowable.app.rest.runtime.ProcessInstancesResource.startNewProcessInstance(ProcessInstancesResource.java:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	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:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.flowable.app.filter.FlowableCookieFilter.doFilterInternal(FlowableCookieFilter.java:154)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	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:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Source string may not be null
	at org.apache.http.util.Args.notNull(Args.java:54)
	at org.apache.http.entity.StringEntity.<init>(StringEntity.java:65)
	at org.apache.http.entity.StringEntity.<init>(StringEntity.java:146)
	at org.flowable.http.impl.HttpActivityBehaviorImpl.perform(HttpActivityBehaviorImpl.java:160)
	at org.flowable.http.HttpActivityBehavior.execute(HttpActivityBehavior.java:137)

Could it be that you’re trying to do a POST without a body?

1 Like

Yes, yvo.

I solved it as you said.

Thanks for your answer!