code: @Override
      protected void registerGlobalWebAppListeners() {
          
          
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
              logger.entering(CLASS_NAME, "registerGlobalWebAppListeners");
         
          // Notify PreEventListenerPorviders because the contract is that they 
          // go first before global listeners
          RegisterEventListenerProvider.notifyPreEventListenerProviders(this);
                      
          
          super.registerGlobalWebAppListeners();
          
          // Add the Servlet 3.1 specific code here.
          List sIdListeners = WebContainer.getSessionIdListeners(isSystemApp());
          try {
              for (int i = 0; i < sIdListeners.size(); i++) {
                  sessionIdListeners.add(i, sIdListeners.get(i));
              }
              
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Added the following HttpSessionIdListeners: " + sessionIdListeners.toString());
              }
          } catch (Throwable th) {
              com.ibm.wsspi.webcontainer.util.FFDCWrapper.processException(th, CLASS_NAME + ".registerGlobalWebAppListeners", "1853", this);
              logError("Failed to load global session listener: " + th);
          }
          
          
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
              logger.exiting(CLASS_NAME, "registerGlobalWebAppListeners");
  
      }
docs: /*
  (non-Javadoc)
  
  Had to override so that we can add logic for HttpSessionIdListeners in Servlet 3.1
  I think this method must be override due to the WebContainer.getSessionIdListeners call
  @see com.ibm.ws.webcontainer.webapp.WebApp#registerGlobalWebAppListeners()