title: Error creating bean with name 'processEngine' defined in class path resource
body: <p>Tring to configure activiti in my gradle project gtting following error,Please help me to fix it.</p>
  
  <blockquote>
    <p>org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'processEngine' defined in class path resource
    [com/ioryx/config/ActivitiConfig.class]: Bean instantiation via
    factory method failed; nested exception is
    org.springframework.beans.BeanInstantiationException: Failed to
    instantiate [org.activiti.engine.ProcessEngine]: Factory method
    'processEngine' threw exception; nested exception is
    java.lang.NoSuchMethodError:
    org.activiti.engine.ProcessEngines.setInitialized(Z)V     at
    org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1067)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]   at
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]   at
    org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    ~[spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]    at
    org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
    [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]     at
    org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
    [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]     at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
    [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]     at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
    [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]     at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
    [spring-boot-1.5.6.RELEASE.jar:1.5.6.RELEASE]     at
    com.ioryx.IoryxApplication.main(IoryxApplication.java:30) [bin/:na]
    Caused by: org.springframework.beans.BeanInstantiationException:
    Failed to instantiate [org.activiti.engine.ProcessEngine]: Factory
    method 'processEngine' threw exception; nested exception is
    java.lang.NoSuchMethodError:
    org.activiti.engine.ProcessEngines.setInitialized(Z)V     at
    org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     at
    org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     ... 18 common
    frames omitted Caused by: java.lang.NoSuchMethodError:
    org.activiti.engine.ProcessEngines.setInitialized(Z)V     at
    org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:66)
    ~[activiti-spring-5.17.0.jar:5.17.0]  at
    org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:60)
    ~[activiti-spring-5.17.0.jar:5.17.0]  at
    com.ioryx.config.ActivitiConfig.processEngine(ActivitiConfig.java:41)
    ~[bin/:na]    at
    com.ioryx.config.ActivitiConfig$$EnhancerBySpringCGLIB$$1581bb10.CGLIB$processEngine$4()
    ~[bin/:na]    at
    com.ioryx.config.ActivitiConfig$$EnhancerBySpringCGLIB$$1581bb10$$FastClassBySpringCGLIB$$e95334d8.invoke()
    ~[bin/:na]    at
    org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    ~[spring-core-4.3.10.RELEASE.jar:4.3.10.RELEASE]  at
    org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
    ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]   at
    com.ioryx.config.ActivitiConfig$$EnhancerBySpringCGLIB$$1581bb10.processEngine()
    ~[bin/:na]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
    Method) ~[na:1.8.0_144]   at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    ~[na:1.8.0_144]   at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ~[na:1.8.0_144]   at java.lang.reflect.Method.invoke(Method.java:498)
    ~[na:1.8.0_144]   at
    org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE]     ... 19 common
    frames omitted</p>
  </blockquote>
  
  <p><strong>IoryxApplication.class</strong></p>
  
  <pre><code>package com.ioryx;
  
  import java.util.HashMap;
  import java.util.Map;
  
  import org.activiti.engine.RepositoryService;
  import org.activiti.engine.RuntimeService;
  import org.activiti.engine.TaskService;
  import org.springframework.boot.CommandLineRunner;
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  import org.springframework.boot.web.servlet.FilterRegistrationBean;
  import org.springframework.boot.web.support.SpringBootServletInitializer;
  import org.springframework.context.annotation.Bean;
  import org.springframework.core.Ordered;
  import org.springframework.scheduling.annotation.EnableScheduling;
  import org.springframework.web.cors.CorsConfiguration;
  import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
  
  import com.mongodb.MongoClientOptions;
  
  @SpringBootApplication
  @EnableScheduling
  public class IoryxApplication extends SpringBootServletInitializer {
  
  public static void main(String[] args) throws Exception {
      SpringApplication.run(IoryxApplication.class, args);
  
  }
  
  
  
  @Bean
  public CommandLineRunner init(final RepositoryService repositoryService, final RuntimeService runtimeService,
          final TaskService taskService) {
  
      return new CommandLineRunner() {
          @Override
          public void run(String... strings) throws Exception {
              Map&lt;String, Object&gt; variables = new HashMap&lt;String, Object&gt;();
              variables.put("applicantName", "John Doe");
              variables.put("email", "john.doe@activiti.com");
              variables.put("phoneNumber", "123456789");
              runtimeService.startProcessInstanceByKey("myProcess", variables);
          }
      };
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p><strong>Activiti configuration file</strong></p>
  
  <pre><code>package com.ioryx.config;
  
  import javax.sql.DataSource;
  
  import org.activiti.engine.FormService;
  import org.activiti.engine.HistoryService;
  import org.activiti.engine.IdentityService;
  import org.activiti.engine.ManagementService;
  import org.activiti.engine.ProcessEngine;
  import org.activiti.engine.RepositoryService;
  import org.activiti.engine.RuntimeService;
  import org.activiti.engine.TaskService;
  import org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl;
  import org.activiti.spring.ProcessEngineFactoryBean;
  import org.activiti.spring.SpringProcessEngineConfiguration;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.context.support.ClassPathXmlApplicationContext;
  import org.springframework.jdbc.datasource.SimpleDriverDataSource;
  import org.springframework.transaction.PlatformTransactionManager;
  
  @Configuration
  public class ActivitiConfig  {
  @Bean
  public DataSource dataSource() {
      SimpleDriverDataSource inMemoryDataSource = new SimpleDriverDataSource();
      inMemoryDataSource.setUsername("sa");
      inMemoryDataSource.setPassword("");
      inMemoryDataSource.setUrl("jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000");
      inMemoryDataSource.setDriverClass(org.h2.Driver.class);
  
      return inMemoryDataSource;
  }
  @Bean
  public ProcessEngine processEngine(ProcessEngineConfigurationImpl pec, PlatformTransactionManager transactionManager,ApplicationContext applicationContext) throws Exception {
      ProcessEngineFactoryBean pe = new ProcessEngineFactoryBean();
      pe.setProcessEngineConfiguration(getProcessEngineConfiguration( transactionManager,applicationContext));
      pe.setApplicationContext(applicationContext);
  
      return pe.getObject();
  }
  @Bean
  public ProcessEngineConfigurationImpl getProcessEngineConfiguration(PlatformTransactionManager transactionManager,ApplicationContext applicationContext) {
      SpringProcessEngineConfiguration pec = new SpringProcessEngineConfiguration();
  
      pec.setDataSource(dataSource());
      pec.setDatabaseSchemaUpdate("true");
      pec.setJobExecutorActivate(true);
      pec.setHistory("full");
      pec.setMailServerPort(2025);
      pec.setDatabaseType("h2");
  
      pec.setTransactionManager(transactionManager);
      pec.setApplicationContext(applicationContext);
  
      return pec;
  }
  @Bean
  public RepositoryService repositoryService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getRepositoryService();
  }
  
  @Bean
  public RuntimeService runtimeService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getRuntimeService();
  }
  
  @Bean
  public HistoryService historyService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getHistoryService();
  }
  
  @Bean
  public ManagementService managementService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getManagementService();
  }
  
  @Bean
  public IdentityService identityService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getIdentityService();
  }
  
  @Bean
  public FormService formService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getFormService();
  }
  
  @Bean
  public TaskService taskService(ProcessEngineFactoryBean processEngineFactoryBean) throws Exception {
      return processEngineFactoryBean.getObject().getTaskService();
  }
  </code></pre>
  
  <p>}</p>
  
  <p><strong>dependencies</strong></p>
  
  <pre><code>dependencies {
  def activitiVersion='5.15.1'
  
  compile("org.activiti:activiti-engine:$activitiVersion"){
  exclude group: 'commons-logging', module: 'commons-logging'
  }
  compile group: 'org.activiti', name: 'activiti-spring', version: '5.17.0'
  compile group: 'com.h2database', name: 'h2', version: '1.4.193'
  compile ('org.codehaus.groovy:groovy-all:2.0.5')
  
  
  
      compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.6.1'
      compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.6.1'
      compile('org.springframework.boot:spring-boot-starter-security')
      compile('org.keycloak:keycloak-spring-boot-starter')
      compile ('org.codehaus.groovy:groovy-all:2.0.5')
      compile('com.spaneos:dtssp2-core:0.0.2-SNAPSHOT')
      compile('com.spaneos:dtssp2-mongo:0.0.2-SNAPSHOT')
      compile group: 'com.spaneos', name:'googlechart-core', version:'0.0.2-SNAPSHOT'
      compile group: 'com.spaneos', name:'googlechart-mongo', version:'0.0.2-SNAPSHOT'
      compile group: 'org.keycloak', name: 'keycloak-admin-client', version: '3.4.0.Final'
  
  
      compile group: 'org.jboss.resteasy', name: 'resteasy-client', version: '3.1.4.Final'
      compile group: 'org.jboss.resteasy', name: 'resteasy-jackson2-provider', version: '3.1.4.Final'
      compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.2'
      compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.2'
      compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.2'
      compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.9.2'
  </code></pre>
  
  <p>}</p>