我有一个Quartz调度程序,它可以在我的开发机(Windows 7)上运行,但是不幸的是,我的linux机上却没有生产该程序。



public class SchedulerClass {
static Logger LOGGER = Logger.getLogger(SchedulerClass.class.getName());
public SchedulerClass(){

    ResourceBundle rb = ResourceBundle.getBundle("Scheduler");
    LOGGER.info("SCHEDULERCLASS:"+rb.getString("groupname"));
    JobDetail job = JobBuilder.newJob(TriggerSchedule.class)

            .withIdentity(rb.getString("jobname"), rb.getString("groupname")).build();
    LOGGER.info("JOB "+job);
    Trigger trigger = TriggerBuilder
            .newTrigger()
            .withIdentity(rb.getString("triggername"),  rb.getString("groupname"))
            .withSchedule(
                    CronScheduleBuilder.cronSchedule(rb.getString("cronexp")))
                    .build();
    LOGGER.info("TRIGGER "+trigger);
    try {
        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        LOGGER.info("scheduler "+scheduler);
        scheduler.start();
        scheduler.scheduleJob(job, trigger);
        LOGGER.info("Scheduler started");

        System.out.println("YYYYY: "+scheduler.getTriggerState(new TriggerKey("DellTrigger")));
    } catch (SchedulerException e) {
        LOGGER.error("SchedulerException-----"+e.getMessage());
    }
}


它在失败

Scheduler scheduler = new StdSchedulerFactory().getScheduler();


下面的日志语句不起作用,也不返回任何错误。

最佳答案

我的应用程序中存在一些slf4j jar文件冲突。
实际上,有多个具有不同版本的slf4j jar文件,因此我删除了所有文件并使用了一个版本。现在启动了调度程序。

07-24 15:31