2009-09-23 5 views
5

У меня есть клиент, настроенный для отправки запроса на сервер SOAP National Weather Service. Я получаю ответ, который я ожидаю, но я не уверен в том, как наилучшим образом извлечь из него данные, которые мне нужны.Как извлечь данные из ответа SOAP в Java?

Например, в XML есть много дополнительных данных (в SOAPBody), но я хочу только захватить данные для параметров, которые я установил (например, температуры) для моего POJO.

Каков наилучший способ извлечения этих данных?

+0

что код, который вы используете, чтобы сделать вызов SOAP? – tster

ответ

10

Я начал пытаться использовать SOAP-сервисы вручную, как вы описали - есть лучшие способы.

Есть библиотеки, которые будут делать всю работу за вас - нет необходимости разбирать что-либо вручную.

Отъезд JAX-WS. Большинство современных IDE (безусловно, Netbeans и Eclipse) также предоставляют поддержку точек и кликов для создания клиентов веб-сервисов с учетом WSDL.

Самая большая потенциальная проблема по этому маршруту - если нет WSDL, или WSDL ошибочен, и в этом случае связанная с инструментом инструмента может работать.

Следующим самым безопасным будет использование XML-анализатора, такого как JAXP SAX & DOM и т. Д. (Они находятся прямо в вашей JRE) для анализа ответа и последующего использования структур данных.

Наконец-то вы можете указать путь к хакерскому маршруту с использованием разделов или регулярных выражений, но по этому пути лежит большая потенциальная боль - в спецификации XML есть больше вложенных тегов.

1

Это сильно receommended, что вы не попытаться декодировать SOAP вручную :)

Просто расширить на то, что сказал @Brabster, Netbeans имеет расширенную поддержку веб-службы, особенно с использованием библиотеки JAX-WS.

http://www.netbeans.org/kb/60/websvc/jax-ws.html#Exercise_3_1

Смежные вопросы