Ejemplo n.º 1
0
  public ConnectorServiceDescriptor findService(String service, ConnectorServiceDescriptor csd)
      throws ConnectorFactoryException {
    Map finders = new TreeMap();
    PropertiesUtils.getPropertiesWithPrefix(csd.getProperties(), "finder.class", finders);

    StringBuffer buf = new StringBuffer();
    for (Iterator iterator = finders.entrySet().iterator(); iterator.hasNext(); ) {
      Map.Entry entry = (Map.Entry) iterator.next();
      try {
        ClassUtils.loadClass(entry.getValue().toString(), getClass());
        String protocol = getProtocolFromKey(entry.getKey().toString());
        return ConnectorFactory.getServiceDescriptor(protocol);
      } catch (ClassNotFoundException e1) {
        buf.append(entry.getValue().toString())
            .append("(")
            .append(entry.getKey().toString())
            .append(")")
            .append(", ");
      }
    }
    throw new ConnectorServiceException(
        new Message(Messages.COULD_NOT_FIND_SOAP_PROVIDER_X, buf.toString()));
  }