【问题标题】:Using quartz 2.2.0 with tomcat 7将石英 2.2.0 与 tomcat 7 一起使用
【发布时间】:2013-08-21 10:03:35
【问题描述】:

我正在尝试在启动 tomcat 时启动石英进程 但它不起作用,这是我的简单代码: 我的 ServletContextListener:

包石英测试;

 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;

 import org.apache.log4j.Logger;
 import org.quartz.CronScheduleBuilder;
 import org.quartz.JobBuilder;
 import org.quartz.JobDetail;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
 import org.quartz.Trigger;
 import org.quartz.TriggerBuilder;
 import org.quartz.impl.StdSchedulerFactory;

 public class ApplicationStartup implements ServletContextListener {
private static Logger log = Logger.getLogger(ApplicationStartup.class);
 public static final String QUARTZ_FACTORY_KEY = "org.quartz.impl.StdSchedulerFactory.KEY";
 private StdSchedulerFactory factory = null;

public void contextDestroyed(ServletContextEvent event) {
    try
    {
        factory.getDefaultScheduler().shutdown();
    } catch (SchedulerException ex)
    {
        log.info("catch");
    }
}

public void contextInitialized(ServletContextEvent sce) {

    System.out.println("THE APPLICATION STARTED");
    ServletContext ctx = sce.getServletContext();

    JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("dummyJobName", "group1").build();

    Trigger trigger = TriggerBuilder.newTrigger().withIdentity("dummyTriggerName", "group1")
    .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();

    try {
        factory = new StdSchedulerFactory();
        ctx.setAttribute(QUARTZ_FACTORY_KEY, factory);
        Scheduler scheduler= factory.getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);
    } catch (SchedulerException e) {
        e.printStackTrace();
    }


}

} 我的工作:

package quartz.test;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class HelloJob implements Job
{
    public void execute(JobExecutionContext context) throws JobExecutionException {

        System.out.println("Hello Quartz!");
    }
}

web.xml

     <context-param>
     <param-name>quartz:shutdown-on-unload</param-name>
     <param-value>false</param-value>
 </context-param>
 <context-param>
     <param-name>quartz:wait-on-shutdown</param-name>
     <param-value>true</param-value>
 </context-param>
 <context-param>
     <param-name>quartz:start-scheduler-on-load</param-name>
     <param-value>true</param-value>
 </context-param>
 <context-param>
     <param-name>quartz:config-file</param-name>
     <param-value>/WEB-INF/classes/quartz.properties</param-value>
 </context-param>

 <listener>
     <listener-class>
        org.quartz.ee.servlet.QuartzInitializerListener
     </listener-class>
 </listener>

编辑: 现在工作开始了,但我收到错误: 20/08/2013 11:18:19 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重:Web 应用程序 [/monitor] 似乎已经启动了一个名为 [QuartzTest_Worker-1] 的线程,但未能停止它。这很可能会造成内存泄漏。

将应用程序重新部署到 tomcat 时在服务器上 请帮忙

谢谢,

【问题讨论】:

    标签: java jakarta-ee tomcat tomcat7 quartz-scheduler


    【解决方案1】:

    我找到了解决方案, 它看起来像石英作业中的错误取决于。 为了使其工作,将此依赖添加到 maven 中:

            <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
    
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.6</version>
        </dependency> 
    

    此错误仅在 2.2.0 版本上,在 2.1.6 版本上运行正常

    【讨论】:

      【解决方案2】:

      要运行此示例,您至少需要 Quartz 中的两个 jar 文件:

      quartz-2.2.x.jar
      quartz-jobs-2.2.x.jar
      

      【讨论】:

        猜你喜欢
        • 2017-09-16
        • 2021-05-18
        • 2021-09-27
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多