如果正常启用的话,应该会有资料输出:
[QuartzPlugin] ********** Quartz Initializer Servlet loaded, initializing Scheduler... **********
什么动做都没有,你可以去检查一下,web.xml?
quartz.properties是否放置正确的目录?
或者相关的quartz.jar包是否放置在正确的目录?还是配置没有弄好。
[QuartzPlugin] ********** Quartz Initializer Servlet loaded, initializing Scheduler... **********
什么动做都没有,你可以去检查一下,web.xml?
quartz.properties是否放置正确的目录?
或者相关的quartz.jar包是否放置在正确的目录?还是配置没有弄好。
2005-11-30 10:27:29 org.quartz.core.QuartzScheduler <init>
信息: Quartz Scheduler v.1.5.1 created.
2005-11-30 10:27:29 org.quartz.plugins.xml.JobInitializationPlugin initialize
信息: Registering Quartz Job Initialization Plug-in.
2005-11-30 10:27:30 org.quartz.simpl.RAMJobStore initialize
信息: RAMJobStore initialized.
2005-11-30 10:27:30 org.quartz.impl.StdSchedulerFactory instantiate
信息: Quartz scheduler 'TestScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
2005-11-30 10:27:30 org.quartz.impl.StdSchedulerFactory instantiate
信息: Quartz scheduler version: 1.5.1
还有就是您说的quartz.properties这个我应该放到那呢?
我是放到web-info/classes下面的.
既然这个都已经initialized成功了,这个动做有没有执行呢,如果成功的话,你可以参照这个成功的案例进行设定。
个人认为 可能是你的排程格式有问题
或者已经是启动了,只是时间没有到或者只是没有输出内容
每15秒 一次~~ 但是就是没有我System.out.println("-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1")的输出 , 研究2天了~~ 不知为什么 快哭了!
我刚才替你写了一个demo,你运行下再看看。
public static void main(String[] args) {
try {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler(); JobDetail jobDetail =
new JobDetail("myJob",sched.getSchedulerInstanceId(), DefaultJob.class); CronTrigger trigger =
new CronTrigger("myTrigger", sched.getSchedulerInstanceId(), "0/2 * * * * ?"); sched.scheduleJob(jobDetail, trigger); sched.start();
//sched.shutdown
} catch (SchedulerException e) {
e.printStackTrace();
} catch (ParseException e) {
}
}
我按照您的做法首先改成0/15 * * * * ? 没有作用,然后使用您写的demo却运行正常。
但不知道为什么用XML的方式却不能成功呢? tomcat后台出现:
2005-12-1 11:37:56 org.quartz.simpl.SimpleThreadPool initialize
信息: Job execution threads will use class loader of thread: main
2005-12-1 11:37:56 org.quartz.core.QuartzScheduler <init>
信息: Quartz Scheduler v.1.5.1 created.
2005-12-1 11:37:57 org.quartz.simpl.RAMJobStore initialize
信息: RAMJobStore initialized.
2005-12-1 11:37:57 org.quartz.impl.StdSchedulerFactory instantiate
信息: Quartz scheduler 'DefaultQuartzScheduler' initialized from default resourc
e file in Quartz package: 'quartz.properties'
2005-12-1 11:37:57 org.quartz.impl.StdSchedulerFactory instantiate
信息: Quartz scheduler version: 1.5.1
2005-12-1 11:37:57 org.quartz.core.QuartzScheduler start
信息: Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
但是却没有我想到的结果??
web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
-----------------------------------------------------------------------------------
quartz_reminder.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE quartz PUBLIC
"-//Quartz Enterprise Job Scheduler//DTD Job Scheduling Data 1.0//EN"
"http://www.quartzscheduler.org/dtd/job_scheduling_data_1_0.dtd">
<quartz>
<job>
<job-detail>
<name>Job_Email</name>
<group>DEFAULT</group>
<job-class>com.easen.quartz.exsm</job-class>
</job-detail>
<trigger>
<cron>
<name>Trigger_Email</name>
<group>DEFAULT</group>
<job-name>Job_Email</job-name>
<job-group>DEFAULT</job-group>
<cron-expression>0/15 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
-------------------------------------------------------------------------------------
quartz.properties
#
# Configure Main Scheduler Properties
#org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one#
# Configure ThreadPool
#
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4
#
# Configure JobStore
#
org.quartz.jobStore.misfireThreshold = 5000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
# ===========================================================================
# Configure SchedulerPlugins ===============================================
# ===========================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = /quartz_reminder.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = trueorg.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true
其中quartz.properties和quartz_reminder.xml 我是放在了WEB-INFO/classes的下面。
你可以试试把cron-expression改错了,然后启动,看quartz是否报错,如果没有报错,那么就有可能是你的quartz_reminder.xml这个文件没有被找到。不过还是建议你自己写程序,比较好控制。我没用xml配过,成天写代码写写惯了,呵呵。
还有要是利用程序来运行的话是不是要把主类继承servlet,并重写init()方法呢。这样才可以在WEB服务器启动同时自动运行。???