Ok, I'm very sure, that I use the same Versions, because I got them from Maven, I see the Code and it's the same than in the Changeset.
Here's my StackTrace:
PHP Code:
10:29:35 DEBUG my.project.scheduler.amqp.ConfigMessageHandler - Starting dispatcher for Message my.project.scheduler.amqp.messages.ConfigMessage@4d811e2c
10:29:35 TRACE my.project.scheduler.amqp.HostHandler - Handling configMessage!
10:29:35 INFO my.project.scheduler.amqp.HostHandler - Created new Host check for host devl.intranet
10:29:35 ERROR org.quartz.core.ErrorLogger - An error occured instantiating job to be executed. job= 'HostChecks.1-check1'
org.quartz.SchedulerException: Problem instantiating class 'my.project.scheduler.jobs.ReachableCheckJob' - [See nested exception: java.lang.IncompatibleClassChangeError: Found interface org.quartz.JobDetail, but class was expected]
at org.quartz.core.JobRunShell.initialize(JobRunShell.java:141)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:381)
Caused by: java.lang.IncompatibleClassChangeError: Found interface org.quartz.JobDetail, but class was expected
at org.springframework.scheduling.quartz.AdaptableJobFactory.createJobInstance(AdaptableJobFactory.java:68)
at org.springframework.scheduling.quartz.AdaptableJobFactory.newJob(AdaptableJobFactory.java:51)
at org.springframework.scheduling.quartz.AdaptableJobFactory.newJob(AdaptableJobFactory.java:43)
at org.quartz.core.JobRunShell.initialize(JobRunShell.java:134)
... 1 more
10:29:35 INFO org.springframework.scheduling.quartz.LocalDataSourceJobStore - All triggers of Job HostCheckTrigger.HLMonTrigger-1-check1 set to ERROR state.
HostHandler:
PHP Code:
void handleHostAction(ConfigMessage configMessage) {
Assert.isTrue(configMessage.getTarget().equals(TargetObject.HOST));
logger.trace("Handling configMessage!");
GenericConfig config = configMessage.getConfigObject();
Map<String, Object> configMap = config.getConfigMap();
final String checkName = (String) configMap.get("name");
final String hostname = (String) configMap.get("hostname");
switch (configMessage.getAction()) {
case UPDATE:
logger.debug("UPDATE " + configMap);
break;
case CREATE:
try {
int interval = Integer.parseInt((String) configMap.get("interval"));
JobDetail job = newJob(ReachableCheckJob.class).withIdentity(checkName, "HostChecks").storeDurably()
.requestRecovery().usingJobData("hostname", hostname).build();
Trigger trg = newTrigger().withIdentity("MonTrigger-" + checkName, "HostCheckTrigger").startNow()
.forJob(job).withSchedule(simpleSchedule().withIntervalInSeconds(interval).repeatForever())
.build();
scheduler.scheduleJob(job, trg);
logger.info("Created new Host check for hot " + hostname);
} catch (Exception e) {
logger.error("Could not create or update!");
logger.debug("Host Data: " + configMap, e);
}
break;
case DELETE:
try {
logger.debug("DELETE " + configMap);
} catch (Exception e) {
logger.error("Could not delete!");
logger.debug("Calendar name to delete: " + checkName, e);
}
break;
default:
throw new IllegalArgumentException("Could not handle not yet implemented Action:"
+ configMessage.getAction());
}
Legend:
ConfigMessageHandler: Dispatches ConfigMessage Beans received by AMQP to Special Handlers, e.g. HostHandler