code: @Override
    public C createAdsServiceClient(D adsServiceDescriptor, S adsSession) throws ServiceException {
      Object soapClient = createSoapClient(adsServiceDescriptor);
      C adsServiceClient = createServiceClient(soapClient, adsServiceDescriptor, adsSession);
      try {
        adsServiceClient.setEndpointAddress(adsServiceDescriptor.getEndpointAddress(adsSession
            .getEndpoint()));
      } catch (MalformedURLException e) {
        throw new ServiceException("Unexpected exception", e);
      }
      return adsServiceClient;
    }
docs: Creates an {@link AdsServiceClient} given an {@link AdsServiceDescriptor}
  descriptor and an {@link AdsSession}.
  
  @param adsServiceDescriptor descriptor with information on ads service
  @param adsSession the session associated with the desired
  client
  @return the created {@link AdsServiceClient}
  @throws ServiceException if the ads service client could not be created