/** * fetches a wsdl endpoint and parses for execution urls * @param value * @return */ private List<String> FetchWSDL(String value) { List<String> items = new List<String>(); if (value.StartsWith("http://") || value.StartsWith("https://")) { //here, we need an HTTP Get for WSDLs org.apache.juddi.v3.client.mapping.ReadWSDL r = new ReadWSDL(); r.setIgnoreSSLErrors(true); try { tDefinitions wsdlDefinition = r.readWSDL(value); Properties properties = new Properties(); properties.put("keyDomain", "domain"); properties.put("businessName", "biz"); properties.put("serverName", "localhost"); properties.put("serverPort", "80"); WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(null, new URLLocalizer(), properties); businessService[] businessServices = wsdl2UDDI.createBusinessServices(wsdlDefinition); for (int i = 0; i < businessServices.Length; i++) { if (businessServices[i].bindingTemplates != null) { for (int k = 0; k < businessServices[i].bindingTemplates.Length; k++) { items.AddRange(ParseBinding(businessServices[i].bindingTemplates[k])); } } } } catch (Exception ex) { log.error("error fetching wsdl for parsing", ex); } } return items; }
/** * Removes the UDDI data structures belonging to the WSDLs for this * clerk from the UDDI node. Note, if registration fails, no exception * is thrown */ public void unRegisterWsdls() { if (this.getWsdls() != null) { Properties properties = new Properties(); properties.putAll(this.getUDDINode().getProperties()); foreach (WSDL wsdl in this.getWsdls()) { try { ReadWSDL rw = new ReadWSDL(); tDefinitions wsdlDefinition = rw.readWSDL(wsdl.getFileName()); if (wsdl.getKeyDomain() != null) { properties.setProperty("keyDomain", wsdl.getKeyDomain()); } if (wsdl.getBusinessKey() != null) { properties.setProperty("businessKey", wsdl.getBusinessKey()); } WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(this, new URLLocalizer(), properties); wsdl2UDDI.unRegisterBusinessServices(wsdlDefinition); } catch (Exception e) { log.error("Unable to register wsdl " + wsdl.getFileName() + " ." + e.Message, e); } } } }
void runTest(String pathAndFile) { Assume.That(File.Exists(pathAndFile)); ReadWSDL wsi = new ReadWSDL(); tDefinitions wsdlDefinition = wsi.readWSDL( pathAndFile ); Properties properties1 = new Properties(); properties1.put("keyDomain", "my.key.domain"); WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(null, new URLLocalizer(), properties1); Assert.NotNull(wsdl2UDDI); Dictionary<QName, tPortType> portTypes1 = (Dictionary<QName, tPortType>)wsdlDefinition.getAllPortTypes(); Assert.NotNull(portTypes1); Assert.True(portTypes1.Count > 0); List<tModel> portTypeTModels1 = wsdl2UDDI.createWSDLPortTypeTModels(pathAndFile, portTypes1); Assert.NotNull(portTypeTModels1); Assert.True(portTypeTModels1.Count > 0); Dictionary<QName, tBinding> allBindings1 = wsdlDefinition.getAllBindings(); Assert.NotNull(allBindings1); Assert.True(allBindings1.Count > 0); List<tModel> createWSDLBindingTModels1 = wsdl2UDDI.createWSDLBindingTModels(pathAndFile, allBindings1); Assert.NotNull(createWSDLBindingTModels1); Assert.True(createWSDLBindingTModels1.Count > 0); businessService[] businessServices = wsdl2UDDI.createBusinessServices(wsdlDefinition); Assert.NotNull(businessServices); Assert.True(businessServices.Length > 0); for (int i = 0; i < businessServices.Length; i++) { foreach (description d in businessServices[i].description) { if (d.lang != null) Assert.True(d.lang.Length <= UDDIConstants.MAX_xml_lang_length); if (d.Value != null) Assert.True(d.Value.Length <= UDDIConstants.MAX_description_length); } foreach (bindingTemplate bt in businessServices[i].bindingTemplates) { Assert.NotNull(bt); Assert.NotNull(bt.bindingKey); Assert.NotNull(bt.Item); Assert.NotNull(bt.serviceKey); Assert.True(bt.Item is accessPoint); Assert.NotNull(((accessPoint)bt.Item).useType); Assert.NotNull(((accessPoint)bt.Item).Value); foreach (description d in bt.description) { if (d.lang != null) Assert.True(d.lang.Length <= UDDIConstants.MAX_xml_lang_length); if (d.Value != null) Assert.True(d.Value.Length <= UDDIConstants.MAX_description_length); } foreach (tModelInstanceInfo tm in bt.tModelInstanceDetails) { foreach (description d in tm.description) { if (d.lang != null) Assert.True(d.lang.Length <= UDDIConstants.MAX_xml_lang_length); if (d.Value != null) Assert.True(d.Value.Length <= UDDIConstants.MAX_description_length); } } } Assert.True(businessServices[i].bindingTemplates.Length > 0); Assert.NotNull(businessServices[i].description); Assert.True(businessServices[i].description.Length > 0); Assert.NotNull(businessServices[i].serviceKey); } }
public void ReadWSDLTest1() { ReadWSDL wsi = new ReadWSDL(); try { tDefinitions wsdlDefinition = wsi.readWSDL(null); } catch (ArgumentNullException) { } }
public static void main(string[] args) { Console.Out.Write("Enter WSDL url: >"); String input = Console.In.ReadLine(); if (String.IsNullOrEmpty(input)) input = "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"; //String wsdlURL = "http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"; //if (String.IsNullOrEmpty(input)) Uri url = null; String host = "localhost"; int port = 80; try { url = new Uri(input); host = url.Host; port = url.Port; } catch { } ReadWSDL wsi = new ReadWSDL(); tDefinitions wsdlDefinition = wsi.readWSDL(input); Properties properties1 = new Properties(); properties1.put("serverName", host); properties1.put("businessName", host); properties1.put("keyDomain", "uddi:" + host); if (port <= 0) { if (url.ToString().StartsWith("https", StringComparison.CurrentCultureIgnoreCase)) port = 443; else port = 80; } properties1.put("serverPort", port.ToString()); tModel keypart = UDDIClerk.createKeyGenator(host, host + "'s key partition", "en"); WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(null, new URLLocalizer(), properties1); List<tModel> tModels1 = new List<tModel>(); Dictionary<QName, tPortType> portTypes1 = (Dictionary<QName, tPortType>)wsdlDefinition.getAllPortTypes(); List<tModel> portTypeTModels1 = wsdl2UDDI.createWSDLPortTypeTModels(input, portTypes1); tModels1.AddRange(portTypeTModels1); Dictionary<QName, tBinding> allBindings1 = wsdlDefinition.getAllBindings(); List<tModel> createWSDLBindingTModels1 = wsdl2UDDI.createWSDLBindingTModels(input, allBindings1); tModels1.AddRange(createWSDLBindingTModels1); businessService[] services = wsdl2UDDI.createBusinessServices(wsdlDefinition); save_service ss = new save_service(); ss.businessService = services; Console.Out.WriteLine(new PrintUDDI<save_service>().print(ss)); save_tModel st = new save_tModel(); st.tModel = tModels1.ToArray(); Console.Out.WriteLine(new PrintUDDI<save_tModel>().print(st)); //save keypart //save tmodels //save business //TODO register the stuff }