Wie zum extrahieren von Daten aus einer SOAP-Antwort in Java?
Ich habe einen client zu senden, eine Anfrage an den National Weather Service SOAP server. Ich erhalte die Antwort, die ich erwarte, aber ich bin mir nicht sicher, der beste Weg, um die Daten zu extrahieren, die ich brauche.
Gibt es zum Beispiel eine Menge zusätzlicher Daten in der XML (im SOAPBody), aber ich möchte nur schnappen Sie sich die Daten für die Parameter, die ich eingestellt habe (z.B. Temperatur), um meine POJO.
Was ist der beste Weg zu extrahieren Sie diese Daten?
- was ist der code, den Sie verwenden, um die SOAP-Aufruf?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich begann zu versuchen, Sie zu konsumieren SOAP-Web-Services-von hand, wie Sie beschreiben - gibt es bessere Möglichkeiten.
Gibt es Bibliotheken gibt, die die ganze Arbeit für Sie - keine Notwendigkeit, zu analysieren, alles von hand.
Check-out JAX-WS. Die meisten Modernen IDEs (Sicherlich Netbeans und Eclipse) bieten auch Punkt und klicken Sie auf Unterstützung für das erstellen von web service-clients in einem gegebenen WSDL.
Die größte potentielle problem für diesen Weg ist, wenn es keine WSDL, oder die WSDL ist falsch, in dem Fall die Werkzeuge, die ich verlinkt hast möglicherweise zu kämpfen.
Den nächsten sicherste Sache wäre, mit einem XML-Parser wie JAXP ist SAX & DOM etc (Sie sind genau dort in Ihrer JRE), die zum analysieren der Antwort und dann zu Fuß in die Daten Strukturen beteiligt.
Schließlich Sie könnte gehen die string hacking route mit splits oder regexes aber auf diesem Weg liegt ein großes Potenzial Schmerz - es gibt mehr zu der XML-spec dann verschachtelte tags.
Es ist stark receommended, dass Sie nicht versuchen und zu entschlüsseln SEIFE von hand 🙂
Einfach zu erweitern auf das, was @Brabster sagte,
Netbeans verfügt über umfangreiche Web-Service-support, vor allem mit der JAX-WS-Bibliothek.
http://www.netbeans.org/kb/60/websvc/jax-ws.html#Exercise_3_1