{"record":{"id":"e65a86584b99c792","repo":"flowable/flowable-engine","slug":"error-retrieving-the-jaxb-binding-definitions","errorCode":null,"errorMessage":"Error retrieving the JAXB binding definitions","messagePattern":"Error retrieving the JAXB binding definitions","errorType":"exception","errorClass":"FlowableException","httpStatus":null,"severity":"error","filePath":"modules/flowable-cxf/src/main/java/org/flowable/engine/impl/webservice/CxfWSDLImporter.java","lineNumber":143,"sourceCode":"                Definition def = wsdlManager.getDefinition(url);\n                WSDLServiceBuilder builder = new WSDLServiceBuilder(bus);\n                List<ServiceInfo> services = builder.buildServices(def);\n\n                for (ServiceInfo service : services) {\n                    WSService wsService = this.importService(service);\n                    this.wsServices.put(this.namespace + wsService.getName(), wsService);\n                }\n\n                if (def != null && def.getTypes() != null) {\n                    this.importTypes(def.getTypes());\n                }\n            } else {\n                throw new FlowableException(\"The JAXB binding definitions are not found for flowable-cxf: \" + JAXB_BINDINGS_RESOURCE);\n            }\n        } catch (WSDLException e) {\n            e.printStackTrace();\n        } catch (IOException e) {\n            throw new FlowableException(\"Error retrieving the JAXB binding definitions\", e);\n        }\n    }\n\n    protected WSService importService(ServiceInfo service) {\n        String name = service.getName().getLocalPart();\n        String location = \"\";\n\n        for (EndpointInfo endpoint : service.getEndpoints()) {\n            location = endpoint.getAddress();\n        }\n\n        WSService wsService = new WSService(this.namespace + name, location, this.wsdlLocation);\n        for (OperationInfo operation : service.getInterface().getOperations()) {\n            WSOperation wsOperation = this.importOperation(operation, wsService);\n            wsService.addOperation(wsOperation);\n\n            this.wsOperations.put(this.namespace + operation.getName().getLocalPart(), wsOperation);\n        }","sourceCodeStart":125,"sourceCodeEnd":161,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cxf/src/main/java/org/flowable/engine/impl/webservice/CxfWSDLImporter.java#L125-L161","documentation":"During importFrom, after locating the JAXB binding resource, an IOException while reading it (or otherwise retrieving binding definitions) is wrapped and rethrown as FlowableException 'Error retrieving the JAXB binding definitions'. It indicates the resource was found but could not be read.","triggerScenarios":"IOException thrown while opening/reading the JAXB binding URL from the classloader — corrupted jar, unreadable file, closed/defunct URL connection, or I/O failure reading the resource stream during DynamicClientFactory setup.","commonSituations":"Corrupted or partially downloaded jar in the app server; network/classloader resource (remote jar in JBoss/fuse) becoming unavailable; filesystem permission problems on exploded deployments; stale hot-deploy artifacts.","solutions":["Verify the jar/resource integrity (checksum, re-deploy the flowable-cxf jar) and redeploy the application.","Check read permissions and accessibility of the jar file containing the binding resource.","Log/print the URL from getResources() and try reading it directly to pinpoint the failing source.","If the resource is a remote URL, ensure network availability and reasonable connection settings."],"exampleFix":"// before\nURL u = cl.getResource(JAXB_BINDINGS_RESOURCE); // unreadable/corrupt source\n// after\ntry (InputStream in = u.openStream()) { /* verify readable at startup */ }\n// and re-deploy a verified flowable-cxf jar if the stream fails","handlingStrategy":"try-catch","validationCode":"Enumeration<URL> urls = Thread.currentThread().getContextClassLoader().getResources(\"jaxb-bindings.xml\");\nwhile (urls.hasMoreElements()) {\n    try (InputStream in = urls.nextElement().openStream()) { in.read(); } // verify readable\n}","typeGuard":null,"tryCatchPattern":"try {\n    importer.importFrom(wsdlUrl);\n} catch (FlowableException e) {\n    if (e.getMessage().contains(\"Error retrieving the JAXB binding definitions\")) {\n        // verify jar integrity, permissions, and redeploy\n    }\n}","preventionTips":["Verify jar checksums after deployment to detect corrupted artifacts.","Ensure the process user can read all jars containing the binding resource.","Probe resource readability at application startup."],"tags":["cxf","jaxb","io","classpath"],"backgroundTag":"file-read-failed","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"}