in taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProvider.java [113:172]
public void findServiceDescriptionsAsync(
FindServiceDescriptionsCallBack callBack) {
URI wsdl = serviceProviderConfig.getURI();
callBack.status("Parsing wsdl:" + wsdl);
WSDLParser parser = null;
try {
parser = new WSDLParser(wsdl.toASCIIString());
List<Operation> operations = parser.getOperations();
callBack.status("Found " + operations.size() + " WSDL operations:"
+ wsdl);
List<WSDLServiceDescription> items = new ArrayList<WSDLServiceDescription>();
for (Operation op : operations) {
WSDLServiceDescription item = new WSDLServiceDescription(credentialManager);
try {
String name = op.getName();
item.setOperation(name);
String use = parser.getUse(name);
String style = parser.getStyle();
if (!WSDLActivityHealthChecker.checkStyleAndUse(style, use)) {
logger.warn("Unsupported style and use combination " + style + "/" + use + " for operation " + name + " from " + wsdl);
continue;
}
item.setUse(use);
item.setStyle(style);
item.setURI(wsdl);
item.setDescription(parser.getOperationDocumentation(name));
items.add(item);
} catch (UnknownOperationException e) {
String message = "Encountered an unexpected operation name:"
+ item.getOperation();
callBack.fail(message, e);
}
}
callBack.partialResults(items);
callBack.finished();
} catch (ParserConfigurationException e) {
String message = "Error configuring the WSDL parser";
callBack.fail(message, e);
} catch (WSDLException e) {
String message = "There was an error with the wsdl: " + wsdl;
callBack.fail(message, e);
} catch (IOException e) {
String message = "There was an IO error parsing the wsdl: " + wsdl
+ " Possible reason: the wsdl location was incorrect.";
callBack.fail(message, e);
} catch (SAXException e) {
String message = "There was an error with the XML in the wsdl: "
+ wsdl;
callBack.fail(message, e);
} catch (IllegalArgumentException e) { // a problem with the wsdl url
String message = "There was an error with the wsdl: " + wsdl + " "
+ "Possible reason: the wsdl location was incorrect.";
callBack.fail(message, e);
} catch (Exception e) { // anything else we did not expect
String message = "There was an error with the wsdl: " + wsdl;
callBack.fail(message, e);
}
}