{"record":{"id":"8adfe4eafbc9f013","repo":"flowable/flowable-engine","slug":"could-not-find-org-flowable-camel-camelbehavior","errorCode":null,"errorMessage":"Could not find org.flowable.camel.CamelBehavior: ","messagePattern":"Could not find org\\.flowable\\.camel\\.CamelBehavior: ","errorType":"validation","errorClass":"FlowableException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java","lineNumber":319,"sourceCode":"                }\n            }\n\n            if (behaviorExtension != null) {\n                fieldExtensions.remove(behaviorExtension);\n            }\n\n            if (theClass == null) {\n                // Default Camel behavior class\n                theClass = Class.forName(getDefaultCamelBehaviorClassName());\n            }\n\n            List<FieldDeclaration> fieldDeclarations = createFieldDeclarations(fieldExtensions);\n            addExceptionMapAsFieldDeclaration(fieldDeclarations, task.getMapExceptions());\n            return (ActivityBehavior) ClassDelegate.defaultInstantiateDelegate(\n                    theClass, fieldDeclarations);\n\n        } catch (ClassNotFoundException e) {\n            throw new FlowableException(\"Could not find org.flowable.camel.CamelBehavior: \", e);\n        }\n    }\n\n\tprotected String getDefaultCamelBehaviorClassName() {\n\t\treturn \"org.flowable.camel.impl.CamelBehaviorDefaultImpl\";\n\t}\n\n    private void addExceptionMapAsFieldDeclaration(List<FieldDeclaration> fieldDeclarations, List<MapExceptionEntry> mapExceptions) {\n        FieldDeclaration exceptionMapsFieldDeclaration = new FieldDeclaration(EXCEPTION_MAP_FIELD, mapExceptions.getClass().toString(), mapExceptions);\n        fieldDeclarations.add(exceptionMapsFieldDeclaration);\n\n    }\n\n    @Override\n    public ShellActivityBehavior createShellActivityBehavior(ServiceTask serviceTask) {\n        List<FieldDeclaration> fieldDeclarations = createFieldDeclarations(serviceTask.getFieldExtensions());\n        return (ShellActivityBehavior) ClassDelegate.defaultInstantiateDelegate(\n                ShellActivityBehavior.class, fieldDeclarations);","sourceCodeStart":301,"sourceCodeEnd":337,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/parser/factory/DefaultActivityBehaviorFactory.java#L301-L337","documentation":"When a BPMN model contains a Camel service task, DefaultActivityBehaviorFactory.createCamelActivityBehavior loads the Camel behavior class (default org.flowable.camel.impl.CamelBehaviorDefaultImpl). If the flowable-camel module is not on the classpath, ClassNotFound is wrapped in FlowableException(\"Could not find org.flowable.camel.CamelBehavior: \").","triggerScenarios":"Deploying/executing a process containing <serviceTask flowable:type=\"camel\"> (or a camel implementation) while the flowable-camel dependency is absent from the runtime classpath.","commonSituations":"Engine deployed without optional flowable-camel module; a process authored in an environment that had Camel is deployed to a runtime without it; fat-jar build excluding optional dependencies.","solutions":["Add the flowable-camel dependency to the runtime classpath (org.flowable:flowable-camel)","If Camel is not needed, remove the camel service task from the BPMN XML","Verify the default CamelBehavior class name matches your Flowable version (getDefaultCamelBehaviorClassName) and that no custom className points to a removed class"],"exampleFix":"// before (pom.xml)\n<!-- no camel dependency -->\n// after (pom.xml)\n<dependency>\n  <groupId>org.flowable</groupId>\n  <artifactId>flowable-camel</artifactId>\n  <version>${flowable.version}</version>\n</dependency>","handlingStrategy":"fallback","validationCode":"try {\n    Class.forName(\"org.flowable.camel.impl.CamelBehaviorDefaultImpl\");\n} catch (ClassNotFoundException e) {\n    throw new IllegalStateException(\"flowable-camel module missing from classpath\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    repositoryService.createDeployment().deploy();\n} catch (FlowableException e) {\n    if (e.getMessage().startsWith(\"Could not find org.flowable.camel.CamelBehavior\")) {\n        log.error(\"Add org.flowable:flowable-camel to dependencies\");\n    }\n}","preventionTips":["Add flowable-camel dependency when processes use camel service tasks","Check classpath at startup if camel tasks are expected","Keep deployment artifacts and build dependencies in sync"],"tags":["classpath","camel","missing-dependency"],"backgroundTag":"class-not-found","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}