flowable/flowable-engine · error · FlowableException
problem retrieving flowable-cmmn-context.xml resources on th
Error message
problem retrieving flowable-cmmn-context.xml resources on the classpath: {java.class.path} What it means
Thrown by CmmnEngines.init when enumerating flowable-cmmn-context.xml Spring configuration resources on the classpath fails with an IOException. The engine cannot complete auto-discovery of Spring-based configurations.
Source
Thrown at modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/CmmnEngines.java:79
} catch (IOException e) {
throw new FlowableException("problem retrieving flowable.cmmn.cfg.xml resources on the classpath: " + System.getProperty("java.class.path"), e);
}
// Remove duplicated configuration URL's using set. Some
// classloaders may return identical URL's twice, causing duplicate startups
Set<URL> configUrls = new HashSet<>();
while (resources.hasMoreElements()) {
configUrls.add(resources.nextElement());
}
for (URL resource : configUrls) {
LOGGER.info("Initializing cmmn engine using configuration '{}'", resource);
initCmmnEngineFromResource(resource);
}
try {
resources = classLoader.getResources("flowable-cmmn-context.xml");
} catch (IOException e) {
throw new FlowableException("problem retrieving flowable-cmmn-context.xml resources on the classpath: " + System.getProperty("java.class.path"), e);
}
while (resources.hasMoreElements()) {
URL resource = resources.nextElement();
LOGGER.info("Initializing cmmn engine using Spring configuration '{}'", resource);
initCmmnEngineFromSpringResource(resource);
}
setInitialized(true);
} else {
LOGGER.info("Cmmn engines already initialized");
}
}
protected static void initCmmnEngineFromSpringResource(URL resource) {
try {
Class<?> springConfigurationHelperClass = ReflectUtil.loadClass("org.flowable.cmmn.spring.SpringCmmnConfigurationHelper");
Method method = springConfigurationHelperClass.getDeclaredMethod("buildCmmnEngine", new Class<?>[] { URL.class });View on GitHub (pinned to d6d39ce1c6)
Solutions
- Check java.class.path entries for unreadable/corrupt artifacts and redeploy
- Remove unused flowable-cmmn-context.xml files or the broken jars causing the scan to fail
- Initialize the CMMN engine programmatically or via an explicit Spring bean instead of classpath auto-discovery
- Verify with a minimal test that CmmnEngines.class.getClassLoader().getResources("flowable-cmmn-context.xml") works in the target environment
Example fix
// before
CmmnEngines.init(); // fails scanning flowable-cmmn-context.xml
// after
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("flowable-cmmn-context.xml");
CmmnEngine engine = ctx.getBean(CmmnEngine.class); Defensive patterns
Strategy: try-catch
Try / catch
try {
CmmnEngines.init();
} catch (FlowableException e) {
if (e.getMessage().contains("problem retrieving flowable-cmmn-context.xml")) {
// initialize via explicit Spring context or programmatic config instead
} else { throw e; }
} Prevention
- Keep classpath scan targets (flowable-cmmn-context.xml) minimal and valid
- Test engine auto-init inside the real app-server/container classloader
- Use explicit Spring bean wiring rather than classpath auto-discovery
When it happens
Trigger: classLoader.getResources("flowable-cmmn-context.xml") throws IOException during engine init — caused by unreadable classpath entries, broken jars, or failing classloaders; the IOException is wrapped in the FlowableException.
Common situations: App-server classloader issues when scanning Spring context XMLs; corrupt deployment artifacts; restrictive container/filesystem permissions making jars unreadable at runtime.
Understand the failure class
Background: "failed to read file", EACCES, ENOENT and "could not read <path>" errors: when a program can't read a file from disk — this error's family across 49 libraries.
Related errors
- problem retrieving flowable.cmmn.cfg.xml resources on the cl
- couldn't initialize cmmn engine from spring configuration re
- Failed to read resource ${resource}
- problem retrieving flowable-dmn-context.xml resources on the
- Cannot read default EL properties
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/e7aef48186d93e58.
Report an issue: GitHub.