{
URIResolver res = new URIResolver(wsdlLocation);
if (!res.isResolved())
{
throw new CreateException(CxfMessages.wsdlNotFound(wsdlLocation), this);
}
url = res.getURL();
}
WebServiceClient clientAnn = clientCls.getAnnotation(WebServiceClient.class);
QName svcName = new QName(clientAnn.targetNamespace(), clientAnn.name());
s = (Service) cons.newInstance(url, svcName);
}
else
{
s = (Service) clientCls.newInstance();
}
if (port == null)
{
throw new CreateException(CxfMessages.mustSpecifyPort(), this);
}
clientProxy = null;
if (port != null)
{
for (Method m : clientCls.getMethods())
{
WebEndpoint we = m.getAnnotation(WebEndpoint.class);
if (we != null && we.name().equals(port) && m.getParameterTypes().length == 0)
{
clientProxy = (BindingProvider) m.invoke(s, new Object[0]);
break;
}
}
}
if (clientProxy == null)
{
throw new CreateException(CxfMessages.portNotFound(port), this);
}
return ClientProxy.getClient(clientProxy);
}