{"record":{"id":"7ea5818989e29712","repo":"flowable/flowable-engine","slug":"the-jaxb-binding-definitions-are-not-found-for-flo-7ea581","errorCode":null,"errorMessage":"The JAXB binding definitions are not found for flowable-cxf: \" + CxfWSDLImporter.JAXB_BINDINGS_RESOURCE","messagePattern":"The JAXB binding definitions are not found for flowable-cxf: \" \\+ CxfWSDLImporter\\.JAXB_BINDINGS_RESOURCE","errorType":"exception","errorClass":"FlowableException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cxf/src/main/java/org/flowable/engine/impl/webservice/CxfWebServiceClient.java","lineNumber":58,"sourceCode":"\n    protected Client client;\n\n    public CxfWebServiceClient(String wsdl) {\n        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();\n        Enumeration<URL> xjcBindingUrls;\n        try {\n            xjcBindingUrls = Thread.currentThread().getContextClassLoader()\n                    .getResources(CxfWSDLImporter.JAXB_BINDINGS_RESOURCE);\n            if (xjcBindingUrls.hasMoreElements()) {\n                final URL xjcBindingUrl = xjcBindingUrls.nextElement();\n                if (xjcBindingUrls.hasMoreElements()) {\n                    throw new FlowableException(\"Several JAXB binding definitions found for flowable-cxf: \"\n                            + CxfWSDLImporter.JAXB_BINDINGS_RESOURCE);\n                }\n                this.client = dcf.createClient(wsdl, Arrays.asList(new String[] { xjcBindingUrl.toString() }));\n                this.client.getRequestContext().put(\"org.apache.cxf.stax.force-start-document\", Boolean.TRUE);\n            } else {\n                throw new FlowableException(\"The JAXB binding definitions are not found for flowable-cxf: \"\n                        + CxfWSDLImporter.JAXB_BINDINGS_RESOURCE);\n            }\n        } catch (IOException e) {\n            throw new FlowableException(\"An error occurs creating a web-service client for WSDL '\" + wsdl + \"'.\", e);\n        }\n    }\n\n    @Override\n    public Object[] send(String methodName, Object[] arguments, ConcurrentMap<QName, URL> overridenEndpointAddresses) throws Exception {\n        try {\n            URL newEndpointAddress = null;\n            if (overridenEndpointAddresses != null) {\n                newEndpointAddress = overridenEndpointAddresses\n                        .get(this.client.getEndpoint().getEndpointInfo().getName());\n            }\n\n            if (newEndpointAddress != null) {\n                this.client.getRequestContext().put(Message.ENDPOINT_ADDRESS, newEndpointAddress.toExternalForm());","sourceCodeStart":40,"sourceCodeEnd":76,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cxf/src/main/java/org/flowable/engine/impl/webservice/CxfWebServiceClient.java#L40-L76","documentation":"The CxfWebServiceClient constructor requires exactly one JAXB binding definitions resource (CxfWSDLImporter.JAXB_BINDINGS_RESOURCE) on the classpath to configure the CXF dynamic client. When getResources finds none, construction throws. Without these bindings the dynamic client cannot map WSDL types correctly.","triggerScenarios":"new CxfWebServiceClient(wsdl) when the classpath does not contain the JAXB bindings resource bundled with flowable-cxf.","commonSituations":"flowable-cxf module missing from dependencies, aggressive fat-jar resource filtering excluding XML resources, or a custom classloader not seeing module resources.","solutions":["Add the flowable-cxf module (org.flowable:flowable-cxf) to your dependencies.","Verify the bindings resource exists on the classpath under the exact name CxfWSDLImporter.JAXB_BINDINGS_RESOURCE.","Check build packaging (shade/war) doesn't exclude *.xml resources from jars."],"exampleFix":"// before\n<dependency>org.flowable:flowable-engine</dependency>\n// after\n<dependency>\n  <groupId>org.flowable</groupId>\n  <artifactId>flowable-cxf</artifactId>\n</dependency>","handlingStrategy":"validation","validationCode":"Enumeration<URL> urls = Thread.currentThread().getContextClassLoader()\n    .getResources(\"org/flowable/cxf/bindings.xml\"); // CxfWSDLImporter.JAXB_BINDINGS_RESOURCE\nif (!urls.hasMoreElements()) {\n    throw new IllegalStateException(\"flowable-cxf module and its JAXB bindings resource are missing from the classpath\");\n}","typeGuard":null,"tryCatchPattern":"try { new CxfWebServiceClient(wsdl); } catch (FlowableException e) { if (e.getMessage().contains(\"not found for flowable-cxf\")) { /* add dependency */ } else { throw e; } }","preventionTips":["Add org.flowable:flowable-cxf to dependencies","Verify packaging does not strip XML resources","Smoke-test web-service client construction at startup"],"tags":["classpath","jaxb","missing-resource","cxf"],"backgroundTag":"resource-not-found","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}