/**
  * @throws OGCWebServiceException
  * @see org.deegree.ogcwebservices.wpvs.configuration.AbstractDataSource#getOGCWebService()
  */
 @Override
 public OGCWebService getOGCWebService() throws OGCWebServiceException {
   WMSConfigurationType wmsConfig = null;
   synchronized (this) {
     URL url = getOwsCapabilities().getOnlineResource();
     wmsConfig = cache.get(url);
     if (!cache.containsKey(url) || wmsConfig == null) {
       WMSConfigurationDocument wmsDoc = new WMSConfigurationDocument();
       try {
         wmsDoc.load(getOwsCapabilities().getOnlineResource());
         wmsConfig = wmsDoc.parseConfiguration();
         cache.put(url, wmsConfig);
       } catch (IOException e) {
         throw new OGCWebServiceException(
             Messages.getMessage("WPVS_DATASOURCE_CAP_ERROR", toString()) + e.getMessage());
       } catch (SAXException e) {
         throw new OGCWebServiceException(
             Messages.getMessage("WPVS_DATASOURCE_CAP_ERROR", toString()) + e.getMessage());
       } catch (InvalidConfigurationException e) {
         throw new OGCWebServiceException(
             Messages.getMessage("WPVS_DATASOURCE_CAP_ERROR", toString()) + e.getMessage());
       }
     }
   }
   return WMServiceFactory.getWMSInstance(wmsConfig);
 }