docs: @Override
      public void init(ServletConfig servletConfig) throws ServletException {
          super.init(servletConfig);
  
          Class<?> implBeanClass;
          LibertyJaxWsImplementorInfo implInfo = null;
          try {
              implBeanClass = jaxWsModuleMetaData.getModuleInfo().getClassLoader().loadClass(endpointInfo.getImplBeanClassName());
              implInfo = new LibertyJaxWsImplementorInfo(implBeanClass, endpointInfo, publisherContext);
          } catch (ClassNotFoundException e) {
              throw new ServletException(e);
          }
  
          Bus serverBus = jaxWsModuleMetaData.getServerMetaData().getServerBus();
  
          JaxWsServiceFactoryBean serviceFactory = new LibertyJaxWsServiceFactoryBean(implInfo, publisherContext);
          jaxWsServerFactory = new LibertyJaxWsServerFactoryBean(serviceFactory);
  
          Invoker ejbMethodInvoker = new EJBMethodInvoker();
  
          serviceFactory.setBus(serverBus);
          serviceFactory.setInvoker(ejbMethodInvoker);
          serviceFactory.setFeatures(jaxWsServerFactory.getFeatures());
          serviceFactory.create();
  
          jaxWsServerFactory.setBus(serverBus);
          jaxWsServerFactory.setAddress(endpointInfo.getAddress(0));
          jaxWsServerFactory.setStart(false);
          jaxWsServerFactory.setServiceBean(implBeanClass);
          jaxWsServerFactory.setInvoker(ejbMethodInvoker);
  
          server = jaxWsServerFactory.create();
  
          //Config the server side properties
          configureEndpointInfoProperties(endpointInfo, server.getEndpoint().getEndpointInfo());
  
          List<Interceptor<? extends Message>> inInterceptors = server.getEndpoint().getInInterceptors();
          List<Interceptor<? extends Message>> outInterceptors = server.getEndpoint().getOutInterceptors();
  
          //Initialize EJBMethodInvoker
          J2EEName j2EEName = jaxWsModuleMetaData.getServerMetaData().getEndpointJ2EEName(endpointInfo.getPortLink());
          if (implInfo.isWebServiceProvider()) {
              //add ejb pre-invoke interceptor
              EJBPreInvokeInterceptor ejbPreInvokeInterceptor = new EJBPreInvokeInterceptor(j2EEName, implBeanClass, ejbContainer, null);
              ejbPreInvokeInterceptor.setEjbJaxWsWebEndpoint(this);
  
              inInterceptors.add(ejbPreInvokeInterceptor);
              outInterceptors.add(new EJBPostInvokeInterceptor());
          } else {
              Service service = serviceFactory.getService();
              org.apache.cxf.service.model.EndpointInfo cxfEndpointInfo = service.getEndpointInfo(endpointInfo.getWsdlPort());
              MethodDispatcher methodDispatcher = (MethodDispatcher) service.get(MethodDispatcher.class.getName());
              List<Method> methods = new ArrayList<Method>(cxfEndpointInfo.getBinding().getOperations().size());
              for (BindingOperationInfo bindingOperationInfo : cxfEndpointInfo.getBinding().getOperations()) {
                  Method method = methodDispatcher.getMethod(bindingOperationInfo);
                  if (method != null) {
                      methods.add(method);
                  } else {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Unable to get method for binding operation info " + bindingOperationInfo.getName());
                      }
                  }
              }
              //add ejb pre-invoke interceptor
              EJBPreInvokeInterceptor ejbPreInvokeInterceptor = new EJBPreInvokeInterceptor(j2EEName, implBeanClass, ejbContainer, methods);
              ejbPreInvokeInterceptor.setEjbJaxWsWebEndpoint(this);
  
              inInterceptors.add(ejbPreInvokeInterceptor);
  
              outInterceptors.add(new EJBPostInvokeInterceptor());
          }
  
          // Delay the handler creation in EJBPreInvokeInterceptor, so not like POJOJaxWsWebEndpoint create handler here.
  
          // Customize WSDL Get Interceptor.
          customizeWSDLGetInterceptor(implBeanClass);
          customizeLoggingInOutIntercetptor(endpointInfo);
  
          server.start();
  
          this.destination = (AbstractHTTPDestination) server.getDestination();
  
      }