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.
Please consult class loading architecture documentation of your web container.
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.
- 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).
- 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.
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();