# SOAP Webservice Methoden und Parameter auslesen



## irki (8. Mai 2015)

Hallo,

ich möchte gerne SOAP Webservices  über WSDL dynamisch zur Laufzeit auslesen.
Also z.b. http://www.webservicex.com/globalweather.asmx?WSDL

Ich möchte dann eine Liste der Methoden mit den Parametern erhalten, damit ich das Webservice zur Laufzeit 
 aufrufen kann. Ich habe das jetzt über SOAPUI versucht, ich bekomme aber die Parameter nicht.

```
WsdlProject project = new WsdlProject();
            WsdlInterface iface = WsdlInterfaceFactory.importWsdl(project,"http://www.webservicex.com/globalweather.asmx?WSDL", true)[0];

            Iterator<com.eviware.soapui.model.iface.Operation> i = iface.getOperationList().iterator();
            WsdlOperation op;
            while (i.hasNext()) {
                op = (WsdlOperation) i.next();
                System.out.println("Operation: " + op.getName());             

            }
```

Wie bekomme ich die Parameter Liste? 
Gibt es eine andere Bibliothek, mit der ich das lösen könnte?

LG
Peter


----------



## Diabolus (8. Mai 2015)

Du musst einfach mittels HttpURLConnection (dazu brauchst du keine zusätzliche Bibliothek) den Inhalt von http://www.webservicex.com/globalweather.asmx?WSDL auslesen.


----------



## Diabolus (8. Mai 2015)

Also in etwa so:

```
String SOAPUrl      = "http://www.webservicex.com/globalweather.asmx?WSDL";
        
        URL url = new URL(SOAPUrl);
        URLConnection connection = url.openConnection();
        
        HttpURLConnection httpConn = (HttpURLConnection) connection;
        
        httpConn.setRequestProperty("Content-Type","text/xml; charset=utf-8");
        httpConn.setRequestProperty("Accept", "text/xml, application/xml");
        httpConn.setDoOutput(true);
        httpConn.setDoInput(true);
        httpConn.connect();
        
        InputStreamReader isr =
            new InputStreamReader(httpConn.getInputStream());
        BufferedReader in = new BufferedReader(isr);

        String inputLine;
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        
        in.close();
```


----------



## irki (9. Mai 2015)

Hallo,

wie ich das WSDL auslese ist mir schon klar.

Ich möchte das ganze WSDL aber parsen, damit ich herausfinde, welche Methoden das Webservice anbietet und welche Parameter eine Methode benötigt. Die Methoden bekomme ich ja, aber wie bekomme ich die Parameter?  Und da ist die Frage, ob ich das XML händisch durchgehen muss, oder ob es dafür nicht schon fertige Klassen gibt, die das können?

LG


----------

