Cannot find referenced job executor with name 'default': jobExecutor is null

Hello gyus, before i came here, i looks all possible solution for my problem, but dont find anything >.<!
I have the exception marked as:

org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'Deployment of Process Application application' => 'Start process engine test': Cannot find referenced job executor with name 'default': jobExecutor is null

Full Exception

java.lang.RuntimeException: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'Deployment of Process Application application' => 'Start process engine test': Cannot find referenced job executor with name 'default': jobExecutor is null
	at org.camunda.bpm.engine.spring.application.SpringProcessApplication.onApplicationEvent(SpringProcessApplication.java:105) ~[camunda-engine-spring-7.14.0.jar:7.14.0]
	at org.camunda.bpm.engine.spring.application.SpringProcessApplication.onApplicationEvent(SpringProcessApplication.java:52) ~[camunda-engine-spring-7.14.0.jar:7.14.0]
	at org.camunda.bpm.spring.boot.starter.SpringBootProcessApplication$$EnhancerBySpringCGLIB$$c25a8a41.onApplicationEvent(<generated>) ~[camunda-bpm-spring-boot-starter-7.14.0.jar:7.14.0]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.1.RELEASE.jar:2.3.1.RELEASE]
	at com.transfinm.src.Application.main(Application.java:17) [classes/:na]

Using camunda + spring boot.

pom.xml

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        <modelVersion>4.0.0</modelVersion>

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.1.RELEASE</version>
            <relativePath/>
        </parent>

        <properties>
            <java.version>8</java.version>
        </properties>

        <groupId>com.transfinm.src</groupId>
        <artifactId>camunda-local</artifactId>
        <version>1.0.0-SNAPSHOT</version>

        <dependencies>
            <!-- Spring base -->
            <dependency>
                <groupId>org.camunda.bpm.springboot</groupId>
                <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
                <version>7.14.0</version>
            </dependency>
            <dependency>
                <groupId>org.camunda.bpm.springboot</groupId>
                <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
                <version>7.14.0</version>
            </dependency>

            <!-- DB connection -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>42.2.18</version>
            </dependency>

            <!-- Additionals -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>

    </project>

process.xml

<process-application
        xmlns="http://www.camunda.org/schema/1.0/ProcessApplication"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <process-engine name="test">
        <job-acquisition>default</job-acquisition>
        <configuration>org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration</configuration>
        <datasource>java:jdbc/ProcessEngine</datasource>

        <properties>
            <property name="history">full</property> <!-- none, activity, audit, full. -->
            <property name="databaseSchemaUpdate">true</property>
            <property name="authorizationEnabled">true</property>
            <property name="autoStoreScriptVariables">false</property>
            <property name="databaseTablePrefix">MY_TABLE_PREFIX_PATTERN_.</property>
            <property name="defaultNumberOfRetries">3</property>
            <property name="defaultUserPermissionNameForTask">UPDATE</property>
            <property name="enableExceptionsAfterUnhandledBpmnError">true</property>
            <property name="enableExpressionsInAdhocQueries">true</property>
            <property name="enableExpressionsInStoredQueries">true</property>
            <property name="enableXxeProcessing">true</property>
            <property name="enableScriptCompilation">true</property>
            <property name="forceCloseMybatisConnectionPool">true</property>
            <property name="failedJobRetryTimeCycle">R5/PT5M</property> <!-- 5 retries with interval in 5 minute -->
            <property name="ensureJobDueDateNotNull">true</property>
            <property name="jdbcDriver">org.postgresql.Driver</property>
            <property name="jdbcPassword">2236</property>
            <property name="jdbcUrl">jdbc:postgresql://localhost:5432/transfinmdb</property>
            <property name="jdbcUsername">postgres</property>
            <property name="jdbcBatchProcessing">true</property>
            <property name="jobExecutorAcquireByDueDate">false</property>
            <property name="jobExecutorActivate">true</property>
            <property name="jobExecutorDeploymentAware">true</property>
            <property name="jobExecutorPreferTimerJobs">false</property>
            <property name="tenantCheckEnabled">true</property>
            <property name="batchJobsPerSeed">100</property>
            <property name="invocationsPerBatchJob">1</property>
            <property name="batchPollTime">30</property>
            <property name="batchJobPriority">0</property>
            <property name="deploymentLockUsed">true</property>
            <property name="deploymentSynchronized">true</property>
            <property name="javaSerializationFormatEnabled">false</property>
            <property name="deserializationTypeValidationEnabled">false</property>
            <property name="deserializationAllowedPackages">null</property>
            <property name="deserializationAllowedClasses">null</property>
            <property name="queryMaxResultsLimit">2000</property>

            <!-- History Configuration -->
            <property name="historyCleanupBatchWindowStartTime">23:00</property> <!-- batch window start time in the format HH:mmZ (Z is for RFC 822 time zone) or HH:mm. E.g., 20:00+0100 or 20:00. In case of null, no batch window is considered to be configured and history cleanup can only be called manually. -->
            <property name="historyCleanupBatchWindowEndTime">06:00</property> <!-- batch window end time in the format HH:mmZ (Z is for RFC 822 time zone) or HH:mm. E.g., 23:00-0300 or 23:00. In case batchWindowEndTime exceeds batchWindowStartTime it is considered to be on the same date (e.g., cleanup runs each day between 20:00 and 23:00). Otherwise it is considered to be on the next calendar day (e.g., cleanup starts each day at 20:00 and finishes the next day at 01:00). Default value is `00:00`. -->
            <!--<property name="mondayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="mondayHistoryCleanupBatchWindowEndTime">00:00</property>
            <property name="tuesdayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="tuesdayHistoryCleanupBatchWindowEndTime">00:00</property>
            <property name="wednesdayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="wednesdayHistoryCleanupBatchWindowEndTime">00:00</property>
            <property name="thursdayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="thursdayHistoryCleanupBatchWindowEndTime">00:00</property>
            <property name="fridayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="fridayHistoryCleanupBatchWindowEndTime">00:00</property>
            <property name="saturdayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="saturdayHistoryCleanupBatchWindowEndTime">00:00</property>
            <property name="sundayHistoryCleanupBatchWindowStartTime">23:00</property>
            <property name="sundayHistoryCleanupBatchWindowEndTime">00:00</property>-->
            <property name="historyCleanupBatchSize">500</property>
            <property name="historyCleanupBatchThreshold">10</property>
            <property name="historyCleanupDegreeOfParallelism">1</property> <!-- Defines the level of parallelism for history cleanup. Default value is 1 (no parallelism). Maximum allowed value is 8. -->
            <property name="historyCleanupMetricsEnabled">true</property> <!-- activates metrics for history cleanup. Default value is true; -->
            <property name="batchOperationHistoryTimeToLive">10</property> <!-- Defines history time to live for historic batch operations. The history time to live defines the number of days using a time specified by the ISO-8601 date format. The function only accepts the notation to define a number of days. -->
            <!--<property name="batchOperationsForHistoryCleanup">2017-09-11T23:59:00.000+0200</property>  Defines history time to live for each specific historic batch operation. The history time to live defines the number of days using a time specified by the ISO-8601 date format. The function only accepts the notation to define a number of days. -->

            <!-- Login params -->
            <property name="loginMaxAttempts">10</property> <!-- Defines the maximum number of attempts a user can try to login before this user is locked. -->
            <property name="loginDelayMaxTime">60</property> <!-- Defines the maximum amount of time (in seconds) for which a user must wait until they are -->
            <property name="loginDelayFactor">2</property> <!-- Defines the factor by which the delay is calculated after an unsuccessful login attempt. -->
            <property name="loginDelayBase">3</property> <!-- Defines the base by which the delay is calculated after an unsuccessful login attempt. -->
        </properties>
    </process-engine>

    <process-archive name="default">
        <process-engine>test</process-engine>
        <properties>
            <property name="isDeleteUponUndeploy">false</property>
            <property name="isScanForProcessDefinitions">true</property>
        </properties>
    </process-archive>

</process-application>

bpm-platform.xml

<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform xmlns="http://www.camunda.org/schema/1.0/BpmPlatform"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://www.camunda.org/schema/1.0/BpmPlatform http://www.camunda.org/schema/1.0/BpmPlatform ">

    <job-executor>
        <job-acquisition name="default" />
    </job-executor>

    <process-engine name="default">
        <job-acquisition>default</job-acquisition>
        <configuration>org.camunda.bpm.engine.impl.cfg.JtaProcessEngineConfiguration</configuration>
        <datasource>jdbc/ProcessEngine</datasource>

        <properties>
            <property name="history">full</property>
            <property name="databaseSchemaUpdate">true</property>
            <property name="transactionManagerJndiName">java:appserver/TransactionManager</property>
            <property name="authorizationEnabled">true</property>
        </properties>

    </process-engine>

</bpm-platform>

Main class

@SpringBootApplication
@EnableProcessApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class);
	}

}

Don’t understand why it can’t find the default job-executor, help please and thank you for all!

1 Like

Stilll in looking for answers… T_T

Can you upload the project somewhere on github so that i can try to replicate the problem.
Also could you explain exactly how you deploy processes, i’m wondering why you need a bpm-platform.xml

I just need to take out all possible configurations for the kamunda. Job configuration, history configuration, database configuration and more.
Actually i think i dont need a bpm-platfor.xml if i using it with the spring, but I could not find any information on how to take out all the configs and got confused…
I do not want to take your time, I am ashamed of myself that I have to ask for help from the developers of the kamunda. Anyway, thank you so much for your feedback.

The full task is: configura camunda app with a spring wrapped, and put them to docker for next undeploying on a linux, for testings of some business processes.

Thank you very much again!

So it looks like indeed you’ve got more than enough configuration files.
You could delete the application.properties file and instead add properties only to the application.yaml file.
All of the properties you need can be added there. Check out this page in the docs for more details.

Hope that helps :slight_smile:

1 Like

Jesus Christ, it’s realy help’s thank you so much! very very very big thanks!
But one of the question, how can i set the:
server.port=
server.contextPath=
using .yaml? it is real? ;D oh almost forgot, i can use something like:

server:
  port:
  additionalPorts:
server.servlet-path: /
management:
  context-path:
  port:

Indeed you can!
Luckily there’s a lot of documentation out there regarding spring boot yaml setup, for the port you can take a look at this: https://www.baeldung.com/spring-boot-change-port

1 Like