Привет всем.
Есть следующие классы:
| Код | package roomproject;
import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
public class MyJob implements Job{ private static Log _log = LogFactory.getLog(MyJob.class);
public MyJob() { } // Сюда вписываем какая бизнес логика должна выполняться public void execute(JobExecutionContext context) throws JobExecutionException { _log.info("Hello World! - " + new java.util.Date()); } }
|
| Код |
package roomproject;
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.Calendar; import java.util.Date; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.TriggerUtils; import org.quartz.impl.StdSchedulerFactory; import org.quartz.*;
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory;
public class ExecuteLDAP extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=windows-1251"; private boolean started = false; //Initialize global variables public void init() throws ServletException { Log log = LogFactory.getLog(ExecuteLDAP.class); Scheduler sched = null; log.info("------- Initializing ----------------------");
// First we must get a reference to a scheduler SchedulerFactory sf = new StdSchedulerFactory(); try { sched = sf.getScheduler();
log.info("------- Initialization Complete -----------");
log.info("------- Scheduling Jobs -------------------");
// computer a time that is on the next round minute Date runTime = TriggerUtils.getEvenMinuteDate(new Date());
// define the job and tie it to our HelloJob class JobDetail job = new JobDetail("myJob", null, MyJob.class);
// Trigger the job to run on the next round minute Trigger trigger = TriggerUtils.makeHourlyTrigger(); // fire every hour trigger.setStartTime(TriggerUtils.getEvenHourDate(new Date())); // start on the next even hour trigger.setName("myTrigger"); log.info(job.getFullName() + " will run at: " + runTime);
// Start up the scheduler (nothing can actually run until the // scheduler has been started) sched.start();
log.info("------- Started Scheduler -----------------");
// wait long enough so that the scheduler as an opportunity to // run the job! log.info("------- Waiting 90 seconds... -------------");
// wait 90 seconds to show jobs Thread.sleep(90L * 1000L); // executing...
// shut down the scheduler log.info("------- Shutting Down ---------------------"); sched.shutdown(true); log.info("------- Shutdown Complete -----------------"); } catch (Exception ex) { ex.printStackTrace(); }
} //Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
//Process the HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
//Clean up resources public void destroy() { } }
|
В процессе работы валится на строке
| Код | JobDetail job = new JobDetail("myJob", null, MyJob.class);
|
| Код | INFO: ------- Scheduling Jobs ------------------- 25/7/2007 18:41:03 org.apache.catalina.core.ApplicationContext log SEVERE: StandardWrapper.Throwable java.lang.NoClassDefFoundError: roomproject.MyJob at roomproject.ExecuteLDAP.class$(ExecuteLDAP.java:28) at roomproject.ExecuteLDAP.init(ExecuteLDAP.java:45) at javax.servlet.GenericServlet.init(GenericServlet.java:211) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) 25/7/2007 18:41:03 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Allocate exception for servlet executeldap java.lang.NoClassDefFoundError: roomproject.MyJob at roomproject.ExecuteLDAP.class$(ExecuteLDAP.java:28) at roomproject.ExecuteLDAP.init(ExecuteLDAP.java:45) at javax.servlet.GenericServlet.init(GenericServlet.java:211) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
|
|