Error while running on Wildfly 14.0.1

When running version 7.10 on Wildfly 14 (taken from https://camunda.org/release/camunda-bpm/wildfly/7.10/camunda-bpm-wildfly-7.10.0.tar.gz), after setting engine property jobExecutorAcquireByPriority, I’m getting following error. Without this property empty engine runs, but I wonder what happen, when I start to deploy processes on it…

ERROR [org.camunda.bpm.engine.jobexecutor] (pool-8-thread-1) ENGINE-14019 Exception during job acquisition Process engine persistence exception: org.camunda.bpm.engine.ProcessEngineException: Process engine persistence exception

at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.rethrow(CommandInvocationContext.java:150)

at org.camunda.bpm.engine.impl.interceptor.CommandContext.close(CommandContext.java:177)

at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:115)

at org.camunda.bpm.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:60)

at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:69)

at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:32)

at org.camunda.bpm.engine.impl.jobexecutor.SequentialJobAcquisitionRunnable.acquireJobs(SequentialJobAcquisitionRunnable.java:157)

at org.camunda.bpm.engine.impl.jobexecutor.SequentialJobAcquisitionRunnable.run(SequentialJobAcquisitionRunnable.java:75)

at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:29)

at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:789)

at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:44)

at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:809)

at java.lang.Thread.run(Thread.java:748)

at org.jboss.threads.JBossThread.run(JBossThread.java:485)

Caused by: org.apache.ibatis.exceptions.PersistenceException:

### Error querying database. Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression '@org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper@orderBy(orderingProperty, index)'. Cause: org.apache.ibatis.ognl.MethodFailedException: Method "orderBy" failed for object org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper [java.lang.ClassNotFoundException: Unable to resolve class: org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper]

### Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression '@org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper@orderBy(orderingProperty, index)'. Cause: org.apache.ibatis.ognl.MethodFailedException: Method "orderBy" failed for object org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper [java.lang.ClassNotFoundException: Unable to resolve class: org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper]

at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)

at org.camunda.bpm.engine.impl.db.sql.DbSqlSession.selectList(DbSqlSession.java:97)

at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.selectListWithRawParameter(DbEntityManager.java:183)

at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.selectList(DbEntityManager.java:175)

at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.selectList(DbEntityManager.java:171)

at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.selectList(DbEntityManager.java:160)

at org.camunda.bpm.engine.impl.persistence.entity.JobManager.findNextJobsToExecute(JobManager.java:195)

at org.camunda.bpm.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:59)

at org.camunda.bpm.engine.impl.cmd.AcquireJobsCmd.execute(AcquireJobsCmd.java:37)

at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:27)

at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:106)

... 11 more

Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression '@org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper@orderBy(orderingProperty, index)'. Cause: org.apache.ibatis.ognl.MethodFailedException: Method "orderBy" failed for object org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper [java.lang.ClassNotFoundException: Unable to resolve class: org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper]

at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)

at org.apache.ibatis.scripting.xmltags.VarDeclSqlNode.apply(VarDeclSqlNode.java:33)

at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)

at org.apache.ibatis.scripting.xmltags.ForEachSqlNode.apply(ForEachSqlNode.java:82)

at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)

at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:35)

at org.apache.ibatis.scripting.xmltags.ChooseSqlNode.apply(ChooseSqlNode.java:35)

at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)

at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)

at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:292)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)

... 22 more

Caused by: org.apache.ibatis.ognl.MethodFailedException: Method "orderBy" failed for object org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper [java.lang.ClassNotFoundException: Unable to resolve class: org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper]

at org.apache.ibatis.ognl.OgnlRuntime.callStaticMethod(OgnlRuntime.java:1566)

at org.apache.ibatis.ognl.ASTStaticMethod.getValueBody(ASTStaticMethod.java:77)

at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)

at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)

at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:470)

at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:434)

at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)

... 33 more

Caused by: java.lang.ClassNotFoundException: Unable to resolve class: org.camunda.bpm.engine.impl.db.sql.MybatisJoinHelper

at org.apache.ibatis.ognl.OgnlRuntime.classForName(OgnlRuntime.java:1184)

at org.apache.ibatis.ognl.OgnlRuntime.callStaticMethod(OgnlRuntime.java:1558)

... 39 more

After few days of work I did not found any other problems. So it seems, that problem is specific to this particular setting.

Thanks for reporting this.
I created a ticket:
https://app.camunda.com/jira/browse/CAM-9913

Eventually I fixed it by myself. The problem was with MyBatis module class loader. On Wildfly, every module has it’s own class loader and MyBatis module does not see Camunda engine module by default. However modification of module.xml in modules/org/mybatis/mybatis/main by adding dependency from Camunda resolves the problem:

<module xmlns="urn:jboss:module:1.0" name="org.mybatis.mybatis">
  <resources>
    <resource-root path="mybatis-3.5.3.jar" />
  </resources>

  <dependencies>    
    <module name="javax.api" />
    <module name="javax.transaction.api" />
	<module name="org.camunda.bpm.camunda-engine"/>
  </dependencies>
</module>

This is at the moment running with Camunda 7.14 on Wildfly 22.0.1.