Class QuartzInitializerServlet

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

    public class QuartzInitializerServlet
    extends javax.servlet.http.HttpServlet

    A Servlet that can be used to initialize Quartz, if configured as a load-on-startup servlet in a web application.

    Using this start-up servlet may be preferred to using the QuartzInitializerListener in some situations - namely when you want to initialize more than one scheduler in the same application.

    You'll want to add something like this to your WEB-INF/web.xml file:

         <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>
             <init-param>
                 <param-name>config-file</param-name>
                 <param-value>/some/path/my_quartz.properties</param-value>
             </init-param>
             <init-param>
                 <param-name>shutdown-on-unload</param-name>
                 <param-value>true</param-value>
             </init-param>
             <init-param>
                 <param-name>wait-on-shutdown</param-name>
                 <param-value>true</param-value>
             </init-param>
             <init-param>
                 <param-name>start-scheduler-on-load</param-name>
                 <param-value>true</param-value>
             </init-param>
         </servlet>
     

    The init parameter 'config-file' can be used to specify the path (and filename) of your Quartz properties file. If you leave out this parameter, the default ("quartz.properties") will be used.

    The init parameter 'shutdown-on-unload' can be used to specify whether you want scheduler.shutdown() called when the servlet is unloaded (usually when the application server is being shutdown). Possible values are "true" or "false". The default is "true".

    The init parameter 'wait-on-shutdown' has effect when 'shutdown-on-unload' is specified "true", and indicates whether you want scheduler.shutdown(true) called when the listener is unloaded (usually when the application server is being shutdown). Passing "true" to the shutdown() call causes the scheduler to wait for existing jobs to complete. Possible values are "true" or "false". The default is "false".

    The init parameter 'start-scheduler-on-load' can be used to specify whether you want the scheduler.start() method called when the servlet is first loaded. If set to false, your application will need to call the start() method before the scheduler begins to run and process jobs. Possible values are "true" or "false". The default is "true", which means the scheduler is started.

    A StdSchedulerFactory instance is stored into the ServletContext. You can gain access to the factory from a ServletContext instance like this:
         StdSchedulerFactory factory = (StdSchedulerFactory) ctx
                    .getAttribute(QuartzFactoryServlet.QUARTZ_FACTORY_KEY);

    The init parameter 'servlet-context-factory-key' can be used to override the name under which the StdSchedulerFactory is stored into the ServletContext, in which case you will want to use this name rather than QuartzFactoryServlet.QUARTZ_FACTORY_KEY in the above example.

    The init parameter 'scheduler-context-servlet-context-key' if set, the ServletContext will be stored in the SchedulerContext under the given key name (and will therefore be available to jobs during execution).

    The init parameter 'start-delay-seconds' can be used to specify the amount of time to wait after initializing the scheduler before scheduler.start() is called.

    Once you have the factory instance, you can retrieve the Scheduler instance by calling getScheduler() on the factory.
    Author:
    James House, Chuck Cavaness
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String QUARTZ_FACTORY_KEY  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void destroy()  
      void doGet​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)  
      void doPost​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)  
      protected StdSchedulerFactory getSchedulerFactory​(java.lang.String configFile)  
      void init​(javax.servlet.ServletConfig cfg)  
      • Methods inherited from class javax.servlet.http.HttpServlet

        doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class javax.servlet.GenericServlet

        getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • QUARTZ_FACTORY_KEY

        public static final java.lang.String QUARTZ_FACTORY_KEY
        See Also:
        Constant Field Values
    • Constructor Detail

      • QuartzInitializerServlet

        public QuartzInitializerServlet()
    • Method Detail

      • init

        public void init​(javax.servlet.ServletConfig cfg)
                  throws javax.servlet.ServletException
        Specified by:
        init in interface javax.servlet.Servlet
        Overrides:
        init in class javax.servlet.GenericServlet
        Throws:
        javax.servlet.ServletException
      • destroy

        public void destroy()
        Specified by:
        destroy in interface javax.servlet.Servlet
        Overrides:
        destroy in class javax.servlet.GenericServlet
      • doPost

        public void doPost​(javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response)
                    throws javax.servlet.ServletException,
                           java.io.IOException
        Overrides:
        doPost in class javax.servlet.http.HttpServlet
        Throws:
        javax.servlet.ServletException
        java.io.IOException
      • doGet

        public void doGet​(javax.servlet.http.HttpServletRequest request,
                          javax.servlet.http.HttpServletResponse response)
                   throws javax.servlet.ServletException,
                          java.io.IOException
        Overrides:
        doGet in class javax.servlet.http.HttpServlet
        Throws:
        javax.servlet.ServletException
        java.io.IOException