To use the GemFire HTTP module with Tomcat application servers, you must modify Tomcat’s server.xml and context.xml files.

Configuration depends on the topology that you use:

For more information, see Common Topologies for HTTP Session Management.

Client/Server Setup

client/server setup

To run GemFire in a client/server configuration, the application server will operate as a GemFire client. To do this:

  1. Add the following line to $CATALINA_HOME/conf/server.xml within the <Server> tag:

    <Listener className="org.apache.geode.modules.session.catalina.ClientServerCacheLifecycleListener"/>
    
  2. Depending on the version of Tomcat you are using, add one of the following lines to $CATALINA_HOME/conf/context.xml within the <Context> tag:

    • For Tomcat 8.5:

      <Manager className="org.apache.geode.modules.session.catalina.Tomcat8DeltaSessionManager"/> 
      
    • For Tomcat 9.0:

      <Manager className="org.apache.geode.modules.session.catalina.Tomcat9DeltaSessionManager"/> 
      
    • For Tomcat 10.0:

      <Manager className="org.apache.geode.modules.session.catalina.Tomcat10DeltaSessionManager"/>
      

    The application server operates as a GemFire client in this configuration.

  3. Add the Tomcat Module extension file to the $GEMFIRE_HOME/extensions directory within your gemfire installation. The name and location of the extension file is dependent on your module version:

    Tomcat Version Location of .gfm file
    Tomcat 8.5 tools/Modules/Tomcat8
    Tomcat 9 tools/Modules/Tomcat9
    Tomcat 10 tools/Modules/Tomcat10
  4. Start the locator and server using gfsh:

    $ gfsh start locator --name=locator1
    $ gfsh start server --name=server1 --locators='localhost[10334]' --server-port=0
    

Peer-to-Peer Setup

peer-to-peer setup

To run GemFire in a peer-to-peer configuration:

  1. Add the following line to Tomcat’s $CATALINA_HOME/conf/server.xml within the <Server> tag:

    <Listener className="org.apache.geode.modules.session.catalina.PeerToPeerCacheLifecycleListener"
        locators="localhost[10334]" />
    
  2. Depending on the version of Tomcat you are using, add one of the following lines to $CATALINA_HOME/conf/context.xml within the <Context> tag:

    • For Tomcat 8.5:

      <Manager className="org.apache.geode.modules.session.catalina.Tomcat8DeltaSessionManager"/> 
      
    • For Tomcat 9.0:

      <Manager className="org.apache.geode.modules.session.catalina.Tomcat9DeltaSessionManager"/> 
      
    • For Tomcat 10.0:

      <Manager className="org.apache.geode.modules.session.catalina.Tomcat10DeltaSessionManager"/>
      

Starting the Application Server

After you update the configuration, navigate to your working directory and start your Tomcat instance.

cd ~/workspace
$CATALINA_HOME/bin/startup.sh

Once started, GemFire automatically launches within the application server process.

Note

GemFire session state management provides its own clustering functionality. If you are using GemFire, do not also activate Tomcat clustering.

Verifying that GemFire Started

You can verify that GemFire has successfully started by inspecting Tomcat’s log file, which is located in $CATALINA/logs and named catalina.<DATE>.log, where DATE is in yyy-mm-dd format. Entries show startup entries, such as:

10-May-2023 12:53:14.791 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/Users/workspace/apache-tomcat-10.1.8/webapps/host-manager] has finished in [2,491] ms
10-May-2023 12:53:14.799 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 
10-May-2023 12:53:14.816 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [16678] milliseconds

You can also confirm that Tomcat is running by opening a browser and navigating to localhost:8080. If you see the Tomcat home page, your installation was successful.

Tomcat Homepage

Troubleshooting Your Tomcat Installation

If you encounter errors on Tomcat startup indicating that GemFire classes are missing or improperly defined, you may find it helpful to perform a wholesale copy of the GemFire-provided JAR files to your Tomcat lib directory, then restarting Tomcat.

cd $CATALINA_HOME/lib
cp $GEMFIRE_HOME/lib/*.jar .
check-circle-line exclamation-circle-line close-line
Scroll to top icon