<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic How to set the application context and classloader for a process engine in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155826#M110129</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am having an issue creating a process engine that can both see all of its classes and my beans in my application context. I noticed that the Spring process engine configuration is application context aware, but it doesn't have a way for me to set the class loader. On the other side, the org.activiti.engine.ProcessEngineConfiguration has a way for me to set the class loader, but no method I can find to set the application context for it to be able to see its delegate beans.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a reference to the classloader and the application context. I just have no idea how to set both.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's how I am creating the engine in java.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-java line-numbers"&gt;&lt;CODE&gt;ProcessEngines.init();&lt;BR /&gt;ProcessEngine processEngine = ProcessEngineConfiguration&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.createStandaloneProcessEngineConfiguration()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.setDataSource(dataSource)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.setDatabaseSchemaUpdate("true")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.setJobExecutorActivate(false)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.setClassLoader(applicationContext.getClassLoader())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.setTransactionsExternallyManaged(true)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.buildProcessEngine();&lt;BR /&gt;ProcessEngines.registerProcessEngine(processEngine);&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 Jan 2014 16:39:32 GMT</pubDate>
    <dc:creator>alexd1</dc:creator>
    <dc:date>2014-01-14T16:39:32Z</dc:date>
    <item>
      <title>How to set the application context and classloader for a process engine</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155826#M110129</link>
      <description>Hi,I am having an issue creating a process engine that can both see all of its classes and my beans in my application context. I noticed that the Spring process engine configuration is application context aware, but it doesn't have a way for me to set the class loader. On the other side, the org.act</description>
      <pubDate>Tue, 14 Jan 2014 16:39:32 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155826#M110129</guid>
      <dc:creator>alexd1</dc:creator>
      <dc:date>2014-01-14T16:39:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to set the application context and classloader for a process engine</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155827#M110130</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Do you have a specific class loader then? Could you explain a bit more why you need that.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 Jan 2014 23:49:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155827#M110130</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2014-01-14T23:49:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to set the application context and classloader for a process engine</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155828#M110131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am using activiti in an application that manages several application contexts in a cloud. The application context's class loader is the one I want. I can set it using the method above, but I don't see a way to set an application context as well. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I don't set the classloader, activiti can't find any of its classes. If I do set the class loader, I get property not found exceptions when activiti executes delegate expressions because it doesn't know any of the beans, so it looks like to me, all it needs is the application context once it has the right class loader.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jan 2014 00:41:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155828#M110131</guid>
      <dc:creator>alexd1</dc:creator>
      <dc:date>2014-01-15T00:41:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to set the application context and classloader for a process engine</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155829#M110132</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm using activiti 5.14&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's how i'm initializing the process engine. I'm doing it this way to be able to set both the classloader &amp;amp; the application context. It doesn't look like it using the loader I set.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SpringProcessEngineConfiguration conf = new SpringProcessEngineConfiguration();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; conf.setDataSource(dataSource);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; conf.setTransactionManager(transactionManager);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; conf.setDatabaseSchemaUpdate("true");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; conf.setJobExecutorActivate(false);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; conf.setClassLoader(applicationContext.getClassLoader());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; conf.setTransactionsExternallyManaged(true);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ProcessEngineFactoryBean factorybean = new ProcessEngineFactoryBean();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; factorybean.setApplicationContext(applicationContext);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; factorybean.setProcessEngineConfiguration(conf);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ProcessEngine processEngine = null;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; try {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; processEngine = factorybean.getObject();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } catch (Exception e1) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; logger.debug("Exception occurred while creating the process engine");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; e1.printStackTrace();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ProcessEngines.registerProcessEngine(processEngine);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/java&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;org.activiti.engine.ActivitiException: Error while evaluating expression: #{kbaDelegate.execute(execution)}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:59)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.bpmn.behavior.ServiceTaskExpressionActivityBehavior.execute(ServiceTaskExpressionActivityBehavior.java:45)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:44)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:85)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:535)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:530)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListe&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; …&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Caused by: org.activiti.engine.impl.javax.el.ELException: Could not find expression factory class&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:209)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:183)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:89)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.BeanELResolver.getExpressionFactory(BeanELResolver.java:527)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.BeanELResolver.invoke(BeanELResolver.java:479)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.CompositeELResolver.invoke(CompositeELResolver.java:397)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.juel.AstMethod.invoke(AstMethod.java:91)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.juel.AstMethod.eval(AstMethod.java:75)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.juel.AstEval.eval(AstEval.java:50)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.juel.AstNode.getValue(AstNode.java:26)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.juel.TreeValueExpression.getValue(TreeValueExpression.java:114)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.delegate.ExpressionGetInvocation.invoke(ExpressionGetInvocation.java:33)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.el.JuelExpression.getValue(JuelExpression.java:50)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; … 212 more&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Caused by: java.lang.ClassNotFoundException: org.activiti.engine.impl.juel.ExpressionFactoryImpl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.grails.plugins.tomcat.ParentDelegatingClassLoader.findClass(ParentDelegatingClassLoader.java:59)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:423)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:356)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.activiti.engine.impl.javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:204)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; … 226 more&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jan 2014 00:59:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155829#M110132</guid>
      <dc:creator>alexd1</dc:creator>
      <dc:date>2014-01-15T00:59:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to set the application context and classloader for a process engine</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155830#M110133</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Why do you need a custom class loader? Are you sure the activiti-engine is on that classloader's classpath?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jan 2014 09:06:52 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-set-the-application-context-and-classloader-for-a-process/m-p/155830#M110133</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2014-01-15T09:06:52Z</dc:date>
    </item>
  </channel>
</rss>

