调度程序在本地服务器上工作,但是当我在生产服务器中部署它时,它无法正常工作。
我已经从web.xml中的侦听器启动了我的调度程序
我的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>AdroitUrban</display-name>
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/res/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>com.Adroit.java.QuartzServletContextListener</listener-class>
</listener>
<context-param>
<param-name>quartz:shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>quartz:wait-on-shutdown</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>quartz:start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
我的java Listener QuartzServletContextListene类
package com.Adroit.java;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzServletContextListener implements ServletContextListener
{
// public static final String QUARTZ_FACTORY_KEY = "org.quartz.impl.StdSchedulerFactory.KEY";
private StdSchedulerFactory factory = null;
private Scheduler scheduler = null;
/**
* Called when the container is shutting down.
*/
public void contextDestroyed(ServletContextEvent sce)
{
try
{
factory.getDefaultScheduler().shutdown();
} catch (SchedulerException ex)
{
ex.printStackTrace();
}
}
/**
* Called when the container is first started.
*/
public void contextInitialized(ServletContextEvent sce)
{
// ServletContext ctx = sce.getServletContext();
try
{
System.out.println("context initialized");
factory = new StdSchedulerFactory();
JobDetail jobDetail = JobBuilder.newJob(JobSchedule.class)
.withIdentity("db_refresher", "refresher")
.build();
CronTrigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("1 45 13 * * ?"))
.build();
scheduler=factory.getScheduler();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
// ctx.setAttribute(QUARTZ_FACTORY_KEY, factory);
} catch (Exception ex)
{
ex.printStackTrace();
}
}
}