0
votes

I was following activiti user guide http://www.activiti.org/userguide/#demo.setup.one.minute.version to install activiti and create the sample vacationrequest bpmn project. When I run the project I keep getting this error regarding process engine creation.

exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at org.activiti.engine.ProcessEngines.<clinit>(ProcessEngines.java:63)
    at vacation.resources.test.main(test.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

This is my test.java class

package vacation.resources;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;

public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub


        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        RepositoryService repositoryService = processEngine.getRepositoryService();
        repositoryService.createDeployment()
          .addClasspathResource("VacationRequest.bpmn20.xml")
          .deploy();

    //  Log.info("Number of process definitions: " + repositoryService.createProcessDefinitionQuery().count());
            }



}

and this is my activiti.cfg.xml file

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">

  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
    <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />
    <property name="jdbcDriver" value="org.h2.Driver" />
    <property name="jdbcUsername" value="sa" />
    <property name="jdbcPassword" value="" />
  </bean>

</beans>

I tried other options than getDefaultProcessEngine() but they all ended up with the an error.

1

1 Answers

0
votes

Does your project use Maven or something else for dependency management? Looks like your project is missing logger implementation like log4j, logback, ...

Try add to project:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.10</version>
</dependency>