package howto.quartz.ejb;
import java.rmi.*;
import javax.ejb.*;
public class TestEJBBean implements SessionBean {
public TestEJBBean() {
}
// EJB life cycle methods are omitted for brevity
........
public void yourMethod() throws RemoteException {
System.out.println("TestEJB Job");
}
}
public class QuartzServlet extends GenericServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("Scheduling Job ..");
JobDetail jd = new JobDetail("Test Quartz","My Test Job",EJBInvokerJob.class);
jd.getJobDataMap().put("ejb", "java:comp/env/ejb/TestEJB");
jd.getJobDataMap().put("method", "yourMethod");
Object[] jdArgs = new Object[0];
jd.getJobDataMap().put("args", jdArgs);
CronTrigger cronTrigger = new CronTrigger("Test Quartz", "Test Quartz");
try {
String cronExpr = null;
// Get the cron Expression as an Init parameter
cronExpr = getInitParameter("cronExpr");
System.out.println(cronExpr);
cronTrigger.setCronExpression(cronExpr);
Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
sched.scheduleJob(jd, cronTrigger);
System.out.println("Job scheduled now ..");
} catch (Exception e) {
e.printStackTrace();
}
}
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
}
public String getServletInfo() {
return null;
}
}