FlowableException: Could not find org.flowable.http.HttpActivityBehavior:

I have this xml flowable file:

<?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="http://www.flowable.org/processdef">
  <process id="Google" name="Google" isExecutable="true">
    <startEvent id="startEvent1"></startEvent>
    <serviceTask id="sid-37CAB1BE-4153-446F-8FF4-01C44D0A5AA2" flowable:type="http">
      <extensionElements>
        <flowable:field name="requestMethod">
          <flowable:string><![CDATA[GET]]></flowable:string>
        </flowable:field>
        <flowable:field name="requestUrl">
          <flowable:string><![CDATA[https://www.google.com/]]></flowable:string>
        </flowable:field>
		<flowable:field name="httpActivityBehaviorClass">
        <flowable:string>
          <![CDATA[org.example.flowable.HttpActivityBehaviorImpl]]>
        </flowable:string>
    </flowable:field>
      </extensionElements>
    </serviceTask>
    <sequenceFlow id="sid-A8C97364-F4C6-4D77-AADB-9B2358E6C5B5" sourceRef="startEvent1" targetRef="sid-37CAB1BE-4153-446F-8FF4-01C44D0A5AA2"></sequenceFlow>
    <endEvent id="sid-772D660C-9FD8-4AA0-9E5E-0031E7CD0771"></endEvent>
    <sequenceFlow id="sid-D9D5C12A-53A0-47B8-BCEE-D8CD4CCEE876" sourceRef="sid-37CAB1BE-4153-446F-8FF4-01C44D0A5AA2" targetRef="sid-772D660C-9FD8-4AA0-9E5E-0031E7CD0771"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_Google">
    <bpmndi:BPMNPlane bpmnElement="Google" id="BPMNPlane_Google">
      <bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1">
        <omgdc:Bounds height="30.0" width="30.0" x="90.0" y="160.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-37CAB1BE-4153-446F-8FF4-01C44D0A5AA2" id="BPMNShape_sid-37CAB1BE-4153-446F-8FF4-01C44D0A5AA2">
        <omgdc:Bounds height="80.0" width="100.0" x="285.0" y="120.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-772D660C-9FD8-4AA0-9E5E-0031E7CD0771" id="BPMNShape_sid-772D660C-9FD8-4AA0-9E5E-0031E7CD0771">
        <omgdc:Bounds height="28.0" width="28.0" x="430.0" y="146.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="sid-A8C97364-F4C6-4D77-AADB-9B2358E6C5B5" id="BPMNEdge_sid-A8C97364-F4C6-4D77-AADB-9B2358E6C5B5">
        <omgdi:waypoint x="119.91884588950421" y="174.0237777155311"></omgdi:waypoint>
        <omgdi:waypoint x="284.9999999999998" y="163.25760869565218"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-D9D5C12A-53A0-47B8-BCEE-D8CD4CCEE876" id="BPMNEdge_sid-D9D5C12A-53A0-47B8-BCEE-D8CD4CCEE876">
        <omgdi:waypoint x="384.949999999996" y="160.0"></omgdi:waypoint>
        <omgdi:waypoint x="430.0" y="160.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

I’m trying to perform a simple GET request to google.com
In my main class I have this:

             ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
				.setJdbcUrl("jdbc:h2:mem:flowable;DB_CLOSE_DELAY=-1")
				.setJdbcUsername("sa")
				.setJdbcPassword("")
				.setJdbcDriver("org.h2.Driver")
			.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

	ProcessEngine processEngine = cfg.buildProcessEngine();

	RepositoryService repositoryService = processEngine.getRepositoryService(); // per fare il deploy di un process
	Deployment deployment = repositoryService.createDeployment()
			.addClasspathResource("Google.bpmn20.xml")
			.deploy();

	ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
			.deploymentId(deployment.getId())
			.singleResult();
	
	System.out.println("Description " + processDefinition.getName());

But when I run it the following error is thrown:

`FlowableException: Could not find org.flowable.http.HttpActivityBehavior
[...] 

Caused by: java.lang.ClassNotFoundException: org.example.flowable.HttpActivityBehaviorImpl`

I’ve found an answer that says to extend class HttpActivityBehavior and extend perform() method, but the IDE cannot find the correct import for this class.
In my pom.xml I have this:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.flowable</groupId>
  <artifactId>firsttest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
  <dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-engine</artifactId>
    <version>6.4.1</version>
  </dependency>
  <dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-http</artifactId>
    <version>6.4.1</version>
</dependency>
  <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.3.176</version>
  </dependency>
  <dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.21</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.21</version>
</dependency>
</dependencies>
</project>

How can I fix this? And how can I then read the body of the response?

Hi TodoMary.

you can find working test HttpServiceTaskTest

I did not find any org.example.flowable.HttpActivityBehaviorImpl in flowable source.

Don’t use org.example.flowable.HttpActivityBehaviorImpl(or implement some)

Regards
Martin

1 Like

I’ve just ran into the same issue. I’ve created a very simple model using Flowable Modeler with an HTTP service task. The bpm fragment looks like this:

<serviceTask id="sid-F11369CA-097F-4241-AF02-09918A1A92F5" name="create user" flowable:type="http">

I’ve deployed this bpmn file into my Spring Boot app which uses Flowable 6.4.2:

<dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter-process-rest</artifactId> <version>6.4.2</version> </dependency>

When starting, Spring shows the following error:

org.flowable.common.engine.api.FlowableException: Could not find org.flowable.http.HttpActivityBehavior:

Do I miss any additional dependencies in my pom?

Yes, if you’d like to use the HTTP task you need to include the flowable-http dependency.

<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-http</artifactId>
    <version>${flowable.version}</version>
</dependency>

*replace ${flowable.version} with whatever version of flowable you are using or use a variable in your pom

1 Like

Thank you, this solved the issue.

The class is missing in 6.6.x. We are facing issues which we are chasing in another thread.

Which dependency brings in HttpActivityBehaviorCustomTestImpl

Sunil