Hi, we have integrated flowable (6.4.2) in our application and we need to implement a reminder feature in our workflow using boundaryTimer Event:
The bpmn:
The JavaDelegate:
We’ve tested that in Development Single Machine Environment, the JavaDelegate works properly.
But, after deploying to our Testing Cluster Environment, there’s exception when it tries to acquire jobs runnable (Shown below). Can you explain possible reasons or any configuration I missed? Thanks!
AcquireTimerJ E org.flowable.job.service.impl.asyncexecutor.AcquireTimerJobsRunnable run exception during timer job acquisition: org.apache.commons.lang3.StringUtils
java.lang.NoClassDefFoundError: org.apache.commons.lang3.StringUtils
at org.flowable.job.service.impl.persistence.entity.AbstractJobEntityImpl.setExceptionMessage(AbstractJobEntityImpl.java:330)
at org.flowable.job.service.impl.asyncexecutor.DefaultJobManager.copyJobInfo(DefaultJobManager.java:603)
at org.flowable.job.service.impl.asyncexecutor.DefaultJobManager.createExecutableJobFromOtherJob(DefaultJobManager.java:558)
at org.flowable.job.service.impl.asyncexecutor.DefaultJobManager.moveTimerJobToExecutableJob(DefaultJobManager.java:131)
at org.flowable.job.service.impl.asyncexecutor.AcquireTimerJobsRunnable$1.execute(AcquireTimerJobsRunnable.java:65)
at org.flowable.job.service.impl.asyncexecutor.AcquireTimerJobsRunnable$1.execute(AcquireTimerJobsRunnable.java:60)
at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:51)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:93)
at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:72)
at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:56)
at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:25)
at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53)
at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:72)
at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)
at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)
at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)
at org.flowable.job.service.impl.asyncexecutor.AcquireTimerJobsRunnable.run(AcquireTimerJobsRunnable.java:60)
at java.lang.Thread.run(Thread.java:785)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:609)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:243)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:850)
at java.lang.ClassLoader.loadClass(ClassLoader.java:829)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:809)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:586)
at java.lang.ClassLoader.loadClass(ClassLoader.java:809)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:586)
at java.lang.ClassLoader.loadClass(ClassLoader.java:809)
… 18 more