docs: public void registerEndpoint(RegisterEndpointRequest arg0) {
          String endpointURL = arg0.getEndpointURL();
          QName serviceName = QName.valueOf(arg0.getServiceName());
          if (LOG.isLoggable(Level.FINE)) {
              LOG.fine("Registering endpoint " + endpointURL + " for service "
                      + serviceName + "...");
          }
          try {
              initLocator();
              BindingType bindingType = arg0.getBinding() == null ? BindingType.OTHER : BindingType
                      .valueOf(arg0.getBinding().value());
              TransportType transportType = arg0.getTransport() == null ? TransportType.OTHER
                      : TransportType.valueOf(arg0.getTransport().value());
              SLPropertiesImpl slProps = null;
              if (!arg0.getEntryType().isEmpty()) {
                  slProps = new SLPropertiesImpl();
                  List<EntryType> entries = arg0.getEntryType();
                  for (EntryType entry : entries) {
                      slProps.addProperty(entry.getKey(), entry.getValue());
                  }
              }
              Endpoint simpleEndpoint =
                  new SimpleEndpoint(serviceName, endpointURL, bindingType, transportType, slProps);
              locatorClient.register(simpleEndpoint, true);
          } catch (ServiceLocatorException e) {
              // throw new ServiceLocatorFault(e.getMessage(), e);
              throw new WebApplicationException(Response
                      .status(Status.INTERNAL_SERVER_ERROR)
                      .entity(e.getMessage()).build());
          } catch (InterruptedException e) {
              // throw new InterruptedExceptionFault(e.getMessage(), e);
              throw new WebApplicationException(Response
                      .status(Status.INTERNAL_SERVER_ERROR)
                      .entity(e.getMessage()).build());
          }
      }