Class ServletStartup

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

    public class ServletStartup
    extends javax.servlet.http.HttpServlet
    This class defines servlet-based Ignite startup. This startup can be used to start Ignite inside any web container as servlet.

    This startup must be defined in web.xml file.

     <servlet>
         <servlet-name>Ignite</servlet-name>
         <servlet-class>org.apache.ignite.startup.servlet.ServletStartup</servlet-class>
         <init-param>
             <param-name>cfgFilePath</param-name>
             <param-value>config/default-config.xml</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
     </servlet>
     

    Servlet-based startup may be used in any web container like Tomcat, Jetty and etc. Depending on the way this startup is deployed the Ignite instance can be accessed by either all web applications or by only one. See web container class loading architecture:

    Tomcat

    There are two ways to start Ignite on Tomcat.
    • Ignite started when web container starts and Ignite instance is accessible only to all web applications.
      1. Add Ignite libraries in Tomcat common loader. Add in file $TOMCAT_HOME/conf/catalina.properties for property shared.loader the following $IGNITE_HOME/ignite.jar,$IGNITE_HOME/libs/*.jar (replace $IGNITE_HOME with absolute path).
      2. Configure startup in $TOMCAT_HOME/conf/web.xml
                 <servlet>
                     <servlet-name>Ignite</servlet-name>
                     <servlet-class>org.apache.ignite.startup.servlet.ServletStartup</servlet-class>
                     <init-param>
                         <param-name>cfgFilePath</param-name>
                         <param-value>config/default-config.xml</param-value>
                     </init-param>
                     <load-on-startup>1</load-on-startup>
                 </servlet>
                 
    • Ignite started from WAR-file and Ignite instance is accessible only to that web application. Difference with approach described above is that web.xml file and all libraries should be added in WAR file without changes in Tomcat configuration files.

    Jetty

    Below is Java code example with Jetty API:
     Server service = new Server();
    
     service.addListener("localhost:8090");
    
     ServletHttpContext ctx = (ServletHttpContext)service.getContext("/");
    
     ServletHolder servlet = ctx.addServlet("Ignite", "/IgniteStartup",
          "org.apache.ignite.startup.servlet.ServletStartup");
    
     servlet.setInitParameter("cfgFilePath", "config/default-config.xml");
    
     servlet.setInitOrder(1);
    
     servlet.start();
    
     service.start();
     
    See Also:
    Serialized Form
    • Constructor Detail

      • ServletStartup

        public ServletStartup()
    • Method Detail

      • init

        public void init()
                  throws javax.servlet.ServletException
        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