2009-09-23 12 views
5

Mam klienta skonfigurowanego do wysyłania żądania do serwera SOAP National Weather Service. Otrzymuję odpowiedź, której oczekuję, ale nie jestem pewien co do najlepszego sposobu wyodrębnienia z niej danych, których potrzebuję.Jak wyodrębnić dane z odpowiedzi SOAP w języku Java?

Na przykład, istnieje wiele dodatkowych danych w XML (w SOAPBody), ale chcę tylko pobrać dane dla parametrów, które ustawiłem (np. Temperatura) do mojego POJO.

Jaki jest najlepszy sposób wyodrębnienia tych danych?

+0

jaki jest kod używasz, aby wykonać połączenie SOAP? – tster

Odpowiedz

10

Zacząłem od próby używania usług sieciowych SOAP ręcznie, jak opisałeś - są lepsze sposoby.

Są tam biblioteki, które wykonają całą pracę za Ciebie - nie trzeba parsować czegokolwiek ręcznie.

Zapoznaj się z JAX-WS. Większość nowoczesnych IDE (na pewno Netbeans i Eclipse) zapewnia także wsparcie punktowe i kliknięcie dla budowania klientów usług WWW przy użyciu WSDL.

Największym potencjalnym problemem na tej trasie jest brak WSDL lub błąd WSDL, w którym to przypadku oprzyrządowanie, które udało mi się połączyć, może mieć problemy.

Kolejną najbezpieczniejszą rzeczą byłoby użycie parsera XML, takiego jak JAXP SAX & DOM itd. (Są one właśnie w twoim środowisku JRE), aby przeanalizować odpowiedź, a następnie przejść odpowiednie struktury danych.

Wreszcie pan mógłby iść ciąg hacking trasy przy użyciu podziały lub regexes ale w dół tej drogi leży wiele potencjalnego bólu - to jeszcze do specyfikacji XML następnie zagnieżdżone znaczniki.

Powiązane problemy