无法在服务器部署上启动Quartz

时间:2011-02-08 09:39:40

标签: java java-ee ejb-3.0 quartz-scheduler jboss5.x

我正在努力这一周。 使用Jboss5.1.x,EJB3.0,quartz1.8 人们把我推荐给文件,但似乎没有人真正了解或不理解我。

有没有办法在EJB bean中启动java代码来安排石英? 我已经了解了如何初始化和循环石英调度程序..但是你如何在应用程序部署中实际调用INIT调度程序的方法?

如果你需要JBOSS调度程序首先调用调度Quartz的init方法,那么Quartz对我来说没用!我会继续使用Jboss调度程序。

任何人都有解决方案吗?

感谢, 射线。

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题但是您不能将Quartz调度程序工厂存储在静态变量中并在静态初始化程序或静态方法中初始化它?类似的东西:

public static Scheduler sched;

public static void init(ServletContext servletContext) throws SchedulerException {
    if (sched == null || !sched.isStarted()) {
        String quartzPropertiesLocation = UtilityClass.getYourQuartzConfig();
        try {
            log.info(new File(quartzPropertiesLocation).getCanonicalPath());
        } catch (IOException e) {
            e.printStackTrace();
        }
        SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory(quartzPropertiesLocation);
        sched = schedFact.getScheduler();
        sched.getContext().put(ServletContext.class.getName(), servletContext);
        sched.start();
    }
}

答案 1 :(得分:0)

是的,但我想要实现的是让我的石英开始部署。但我找到了解决方法,我正在使用

@Service(objectName = "..")
@Management(...)

一旦我的项目部署,该类就会被触发。

相关问题