use of com.sun.tools.ws.wsdl.framework.ParseException in project metro-jax-ws by eclipse-ee4j.
the class MetadataFinder method getFromMetadataResolver.
/*
* If source and target namespace are also passed in,
* then if the mex resolver is found and it cannot get
* the data, wsimport attempts to add ?wsdl to the
* address and retrieve the data with a normal http get.
* This behavior should only happen when trying a
* mex request first.
*/
@Nullable
private Element getFromMetadataResolver(String systemId, Exception ex) {
// try MEX
MetaDataResolver resolver;
ServiceDescriptor serviceDescriptor = null;
for (MetadataResolverFactory resolverFactory : ServiceFinder.find(MetadataResolverFactory.class, ServiceLoader.load(MetadataResolverFactory.class))) {
resolver = resolverFactory.metadataResolver(options.entityResolver);
try {
serviceDescriptor = resolver.resolve(new URI(systemId));
// we got the ServiceDescriptor, now break
if (serviceDescriptor != null)
break;
} catch (URISyntaxException e) {
throw new ParseException(e);
}
}
if (serviceDescriptor != null) {
errorReceiver.warning(new SAXParseException(WsdlMessages.TRY_WITH_MEX(ex.getMessage()), null, ex));
return parseMetadata(systemId, serviceDescriptor);
} else {
errorReceiver.error(null, WsdlMessages.PARSING_UNABLE_TO_GET_METADATA(ex.getMessage(), WscompileMessages.WSIMPORT_NO_WSDL(systemId)), ex);
}
return null;
}
Aggregations