docs: @Override
      public ExtensionProcessor createExtensionProcessor(IServletContext servletContext) throws Exception {
  
          WebModuleMetaData moduleMetaData = ((WebAppConfigExtended) (servletContext.getWebAppConfig())).getMetaData();
          JaxRsModuleMetaData jaxRsModuleMetaData = JaxRsMetaDataManager.getJaxRsModuleMetaData(moduleMetaData);
  
          //If jaxrs-2.0 feature is enabled while the server is on the running status, WebContainer service may receive the JaxRsExtensionFactory registration
          //service before the started applications are removed, at this time, no JaxRsModuleMeta was stored in the application metadata
          //So, now we just return null, as the application will be restarted as it is configured in the jaxrs feature file
          if (jaxRsModuleMetaData == null) {
              return null;
          }
  
          //Add WebAppInjectionInterceptor to JaxWsInstanceManager
          //   jaxRsModuleMetaData.getJaxRsInstanceManager().addInterceptor(new WebAppInjectionInstanceInterceptor(servletContext));
  
          //Get JaxRsModuleInfo
          NonPersistentCache overlayCache = servletContext.getModuleContainer().adapt(NonPersistentCache.class);
          JaxRsModuleInfo jaxRsModuleInfo = (JaxRsModuleInfo) overlayCache.getFromCache(JaxRsModuleInfo.class);
  
          //No WebService Implementation is found and just return null to indicate no interest on the request processing
          if (jaxRsModuleInfo == null || jaxRsModuleInfo.endpointInfoSize() == 0) {
              if (tc.isDebugEnabled()) {
                  Tr.debug(tc, "No JAX-RS service is found in the web module, will not create web service processor");
              }
              return null;
          }
  
          Container publisherModuleContainer = servletContext.getModuleContainer();
          JaxRsPublisherContext publisherContext = new JaxRsPublisherContext(jaxRsModuleMetaData, publisherModuleContainer, JaxRsUtils.getWebModuleInfo(publisherModuleContainer));
  
          publisherContext.setAttribute(JaxRsServerConstants.SERVLET_CONTEXT, servletContext);
  
  //        WebApp webApp = (WebApp) servletContext;
  //        publisherContext.setAttribute(JaxRsWebContainerConstants.NAMESPACE_COLLABORATOR, webApp.getCollaboratorHelper().getWebAppNameSpaceCollaborator());
  
          publisherContext.setAttribute(JaxRsConstants.ENDPOINT_INFO_BUILDER_CONTEXT, new EndpointInfoBuilderContext(
                          servletContext.getModuleContainer().adapt(WebAnnotations.class).getInfoStore(),
                          servletContext.getModuleContainer()
                                        ));
          //Add collaborator to publisherContext, IBMRestServlet can get it later
          WebApp webApp = (WebApp) servletContext;
          publisherContext.setAttribute(JaxRsConstants.COLLABORATOR, webApp.getCollaboratorHelper().getWebAppNameSpaceCollaborator());
  
          // get endpoint publisher and do publish
  //        EndpointPublisher endpointPublisher = getEndpointPublisher(JaxRsConstants.WEB_ENDPOINT_PUBLISHER_TYPE);
          EndpointPublisher endpointPublisher = endpointPublisherSR.getServiceWithException();
          for (EndpointInfo endpointInfo : jaxRsModuleInfo.getEndpointInfos()) {
              endpointPublisher.publish(endpointInfo, publisherContext);
          }
  
          for (JaxRsWebAppConfigurator jaxRsWebAppConfigurator : jaxRsWebAppConfigurators) {
              jaxRsWebAppConfigurator.configure(jaxRsModuleInfo, servletContext.getWebAppConfig());
          }
  
          return new JaxRsExtensionProcessor(servletContext);
      }