flowable/flowable-engine · error · FlowableException
problem retrieving flowable-dmn-context.xml resources on the
Error message
problem retrieving flowable-dmn-context.xml resources on the classpath: " + System.getProperty("java.class.path") What it means
DmnEngines.init(), after handling flowable.dmn.cfg.xml, also scans for Spring-based configuration files (flowable-dmn-context.xml). An IOException while enumerating those resources is wrapped in this FlowableException with the classpath appended. Engine bootstrap cannot continue.
Source
Thrown at modules/flowable-dmn-engine/src/main/java/org/flowable/dmn/engine/DmnEngines.java:81
throw new FlowableException("problem retrieving flowable.dmn.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 (Iterator<URL> iterator = configUrls.iterator(); iterator.hasNext();) {
URL resource = iterator.next();
LOGGER.info("Initializing dmn engine using configuration '{}'", resource);
initDmnEngineFromResource(resource);
}
try {
resources = classLoader.getResources("flowable-dmn-context.xml");
} catch (IOException e) {
throw new FlowableException("problem retrieving flowable-dmn-context.xml resources on the classpath: " + System.getProperty("java.class.path"), e);
}
while (resources.hasMoreElements()) {
URL resource = resources.nextElement();
LOGGER.info("Initializing dmn engine using Spring configuration '{}'", resource);
initDmnEngineFromSpringResource(resource);
}
setInitialized(true);
} else {
LOGGER.info("DMN engines already initialized");
}
}
protected static void initDmnEngineFromSpringResource(URL resource) {
try {
Class<?> springConfigurationHelperClass = ReflectUtil.loadClass("org.flowable.dmn.spring.SpringDmnConfigurationHelper");
Method method = springConfigurationHelperClass.getDeclaredMethod("buildDmnEngine", new Class<?>[] { URL.class });View on GitHub (pinned to d6d39ce1c6)
Solutions
- Inspect the IOException cause to identify the failing classpath entry.
- Validate all entries in the reported java.class.path are accessible and not corrupted jars.
- Correct container/custom classloader configuration and re-init.
Example fix
// before: jar listed on classpath but deleted at runtime classpath: /apps/lib/flowable-dmn.jar (missing on disk) // after redeploy missing jar so classpath entries all resolve
Defensive patterns
Strategy: try-catch
Validate before calling
Enumeration<URL> ctx = DmnEngines.class.getClassLoader().getResources("flowable-dmn-context.xml");
// if this throws IOException, the engine init will fail the same way Try / catch
try { DmnEngine engine = DmnEngines.getDmnEngine(); } catch (FlowableException e) {
if (e.getMessage().startsWith("problem retrieving flowable-dmn-context.xml")) { /* fix classloader/classpath */ }
throw e;
} Prevention
- Verify classpath integrity before engine bootstrap
- Repair broken jars/directories reported in java.class.path
- Restart containers with corrupted classloaders
When it happens
Trigger: DmnEngines.init() (via getDmnEngine) when classLoader.getResources("flowable-dmn-context.xml") throws IOException.
Common situations: Same classloader/environment failures as the cfg.xml scan: broken classpath entries, container classloader issues, custom resource-loading failures.
Related errors
- problem retrieving flowable.dmn.cfg.xml resources on the cla
- problem retrieving flowable-cmmn-context.xml resources on th
- couldn't initialize dmn engine from spring configuration res
- problem retrieving flowable-idm-context.xml resources on the
- Failed to read resource <resource>
AI-assisted analysis of flowable/flowable-engine@d6d39ce1c6 (2026-09-11).
Data as JSON: /api/errors/a745afc347c134e7.
Report an issue: GitHub.