Fehler beim Testen: path resource [activiti.cfg.xml] cannot be opened


Umgebung

  • Wildfly
  • Camunda
  • JUnit

Situation

Innerhalb einer JEE Anwendung verwenden wir Camunda. Beim erstellen von Tests werden mit

    @Rule
    public ProcessEngineRule processEngineRule = new ProcessEngineRule();

die ProcessEngine und die Dienste zur Verfügung gestellt. Wir starten einen Test mit

    @Test
    @Deployment(resources = {MyConstants.PROCESS_NAME)
    public void executeProcessStraighForward() throws Exception {
    ....

und erhalten den Fehler

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML 
document from class path resource [activiti.cfg.xml]; 
nested exception is java.io.FileNotFoundException: class path resource [activiti.cfg.xml] 
cannot be opened because it does not exist

obwohl wir definitiv kein Spring verwenden (und auch nicht verwenden wollen 🙂 ).

Ursache

Die JUnit Rule findet keine camunda.cfg.xml und nutzt den Fallback activiti.cfg.xml. Dies geschieht aus Kompatibilitätsgründen und wurde beim Fork von Activiti integriert. Es muss also in den Ressourcen der Tests eine camunda.cfg.xml angelegt oder diese programmatisch erstellt werden

 @Rule
public ProcessEngineRule rule = new ProcessEngineRule(this.createProcessEngineProgramatically());
...
protected ProcessEngine createProcessEngineProgramatically() {
    StandaloneInMemProcessEngineConfiguration processEngineConfiguration = new 
        StandaloneInMemProcessEngineConfiguration();
    processEngineConfiguration.setCustomPostBPMNParseListeners(Arrays.asList(new BpmnParseListener[]{new FoxFailedJobParseListener()}));
    return processEngineConfiguration.buildProcessEngine();
}

Fragen und Anmerkungen

Für Fragen und Anmerkungen sendet mir gerne eine eMail. Wegen der DSGVO habe ich derzeit die Kommentarfunktionen abgestellt.

Du hast Fragen oder Anmerkungen? Kontakt: arndt@schoenb.de