WebWork 2 : Quartz
This page last changed on Jun 10, 2004 by ctran.
The following class performs the glue between Quartz and Webwork: package com.trantek.sit.action; import com.opensymphony.xwork.ActionProxy; import com.opensymphony.xwork.ActionProxyFactory; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class WebWorkJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { try { ActionProxy proxy = ActionProxyFactory.getFactory(). createActionProxy("", context.getJobDetail().getName(), context.getJobDetail().getJobDataMap()); proxy.execute(); } catch (Exception e) { throw new JobExecutionException(e); } } } To schedule webwork actions you simply create a job where
(the Quartz scheduler is setup as a servlet according to the javadocs of org.quartz.ee.servlet.QuartzInitializerServlet.) The following code schedules an e-mail action:Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); JobDetail jobDetail = new JobDetail("email.send", scheduler.DEFAULT_GROUP, WebworkJob.class); Map m = jobDetail.getJobDataMap(); m.put("to", "me@bogusdomain.com"); m.put("subject", "quartz test"); m.put("body", "This is a quartz test, Hey ho"); m.put("smtpServer", "smtp.bogusdomain.com"); m.put("from", "quartz@bogusdomain.com"); SimpleTrigger trigger = new SimpleTrigger("myTrigger", scheduler.DEFAULT_GROUP, new Date(), null, 0, 0L); scheduler.deleteJob("email.send", scheduler.DEFAULT_GROUP); scheduler.scheduleJob(jobDetail, trigger); This example is based on WW1:Integrating Webwork and Quartz |
Document generated by Confluence on Dec 14, 2004 16:36 |