Frage

Ich bin ein bisschen rostig in meinem Java, und dies ist mein erstes Mal mit dem U-Bahn / JAX-WS, also, wenn dies eine dumme Frage ist, ich entschuldige mich.

Ich habe einen Klienten zu schreiben, die eine .NET Webservice verbraucht. Ich habe die Grundlagen nach unten bekommt; Ich habe den Wrapper aus der WSDL generierte, und ich kann mein Ziel und Port und einen Anruf erstellen und eine Antwort erhalten.

    Widgets d = new Widgets();
    WidgetsSoap dp = d.getWidgetsSoap();
    ((BindingProvider)dp).getRequestContext(). put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://actualsite/foo.asmx");

    UserGetWidgetsResponse.UserGetWidgetsResult j = dp.userGetWidgets();

Die Rückgabewerte des Webservice sind fast alle XmlDocument oder XmlNode. Wie komme ich aus der wsimport generierte „UserGetWidgetsResponse.UserGetWidgetsResult“ den eigentlichen XML durch den Aufruf zurückgegeben?

Ich habe eine Reihe dieser Dienste mit einem Bündel von Methoden, so dass ich hoffe, eine Lösung zu finden, erfordert nicht die generierten Wrapper in irgendeiner Weise zu verändern. Ich habe auch nicht die Kontrolle über die Informationen, die von dem Web-Service zurück.

War es hilfreich?

Lösung

fand ich eine Lösung für dieses Problem über das Wochenende, aber ich bin nicht sicher, ob es die richtige Lösung:

    UserGetDevicesResponse.UserGetDevicesResult j = dp.userGetDevices();
    List<Object> n = j.getContent();
    if (n.size() > 0)
    {
        Node z = (Node)n.get(0);
        System.out.println(nodeToString(z));
    }

Das gibt mir die XML-Dokument Antwort, die ist das, was ich suche. Dann kann ich tun, was ich Operationen auf dem Baum soll für die Daten zu extrahieren, ich bin auf der Suche.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top