Каталог Индекс раздела
Назад Оглавление Вперед

Лабораторная работа № 4.
Знакомство с веб-сервисами

Цель работы: Задание:
В данной лабораторной работе необходимо научиться работать с веб-сервисами с помощью Eclipse. Для этого необходимо:
  1. установить для Eclipse плагин soapUI для работы с веб-сервисами
  2. найти в сети Интернет один из общедоступных веб-сервисов (или выбрать один из списка на сайтах XMethods, WebserviceX.NET)
  3. создать в soapUI проект для работы с выбранным веб-сервисом
  4. изучить работу выбранного веб-сервиса
  5. изучить реакцию веб-сервиса на некорректный запрос

Пример выполнения

1. Установка плагина soapUI

Для работы с веб-сервисами мы будем использовать программу soapUI. soapUI - бесплатное программное обеспечение с открытым исходным кодом, предназначенное для функционального тестирования. soapUI поддерживает множество технологий и протоколов, но нас в данной работе будет интересовать его возможность работать с WSDL и SOAP. soapUI может быть установлено как отдельное приложение или как плагин к Eclipse. Мы выбрали второй вариант.

Установить soapUI плагин можно двумя способами - скопировав заранее скачанный плагин в папку с Eclips'ом или средствами Eclipse установить его через Интернет. При выборе первого способа архив из \\hero\software\eclipse\eclipse plugins\eclipse plugins\soapui-eclipse-plugin-3.6.1.zip необходимо распаковать в папку с Eclips'ом и перезапустить его.
Для установка плагина средствами Eclipse необходимо добавить в Eclipse soapUI репозитарий. Для этого нужно выбрать пункт меню Help -> Install New Software, нажать кнопку Add и в появившемся окне Add Repository ввести имя репозитория (например soapUI) в поле Name и его адрес (http://www.soapui.org/eclipse/update) (рис. 1).
Рисунок 1. Добавление нового репозитория
Затем следует поставить галочку возле soapUI (рис. 2) и далее следовать инструкциям мастера.
Рисунок 2. Установка soapUI


После установки плагина в Eclips'е появится новая перспектива soapUI (пункт меню Window -> Open Perspective -> Other...) (рис.3).
Рисунок 3. Выбор перспективы soapUI

2. Выбор веб-сервиса

На сайте XMethods представлен список общедоступных веб-сервисов с кратким описанием каждого из них. Мы выбрали сервис Countries web service, позволяющий получить информацию по странам и регионам. Описание веб-сервиса (WSDL) доступно по адресу http://www.mobilefish.com/services/web_service/countries.php?wsdl. Сервис предоставляет три метода:
  1. getIANAInfo - возврашает массив, содержащий ianacode - IANA код страны и countryname - название страны. IANA (Internet Assigned Numbers Authority, Администрация адресного пространства Интернет) — американская некоммерческая организация, управляющая пространствами IP-адресов, доменов верхнего уровня, а также регистрирующая типы данных MIME и параметры прочих протоколов Интернета.
  2. countryInfoByIana(ianacode as string) - возвращает IANA код (ianacode), имя (countryname), широту (latitude) и долготу (longitude) страны, переданной в качестве параметра метода.
  3. regionsInfoByIana(ianacode as string) - возвращает массив, содержащий информацию о регионах страны, переданной в качестве параметра метода в виде IANA кода. Каждый элемент массива содержит IANA код (ianacode), имя региона (regionname), широту (latitude) и долготу (longitude) региона.

3. Создание проекта в soapUI и работа с выбранным веб-сервисом

Для работы с выбранным веб-сервисом создадим новый проект в soapUI. Для этого переключимся на soapUI перспективу, щелкнем правой кнопкой мыши по строке "Projects" в панеле "soapUI Navigator" и выберем пункт New soapUI Project (рис. 4).
Рисунок 4. Создание нового soapUI проекта
В появившемся окне "New soapUI Project" в поле "Project Name" зададим имя проекта, а в поле "Inital WSDL/WADL" - адрес веб-сервиса (рис. 5).
Рисунок 5. Создание нового soapUI проекта
Опция "Create Requests" (по умолчанию выбрана) отвечает за создание шаблона запроса для каждого метода веб-сервиса.

После создания проекта он и его методы появятся в панели "soapUI Navigator" (рис. 6).
Рисунок 6. soapUI проект
Выполним вначале метод getIANAInfo, для чего дважды щелкнем по соответствующей строке "Request 1" панели "soapUI Navigator". Появится новая вкладка, состоящая из трех частей. В верхней части находится панель иструментов и выпадающий список с адресами веб-сервисов (по умолчанию там только один адрес - нашего веб-сервиса). Оставшее пространство вкладки разбито на две части - в левой находится запрос, который будет отсылаться веб-сервису (Request), в правой - ответ веб-сервиса (Response). Для отсылки запроса на панели инструментов предусмотрена кнопка - Submit request to specified endpoint URL. Метод getIANAInfo не имеет входных параметров, поэтому сразу отсылаем ему запрос. В ответ получаем список стран с их AINA кодами (рис. 7):
Рисунок 7. Результат выполнения метода getIANAInfo
Среди списка стран присутствует и Украина, ее IANA код - ua.

Далее получим информацию по Украине с помощью метода countryInfoByIana. Для этого дважды щелкнем по соответствующей строке "Request 1" панели "soapUI Navigator" и в появившейся вкладке зададим в качестве значения параметра ianacode строку "ua". После выполнения метода мы получим следующий результат: широта - 48.379433, долгота - 31.165581 (рис. 8).
Рисунок 8. Результат выполнения метода countryInfoByIana


Наконец, получим информацию и широте и долготе городов Украниы, для чего выполним метод regionsInfoByIana, также передав в качестве значения параметра ianacode строку "ua". Результат представлен на рис. 9:
Рисунок 9. Результат выполнения метода regionsInfoByIana


Проанализируем теперь реакцию веб-сервиса на некорректные запросы на примере метода countryInfoByIana. Отправим вначале SOAP, удалив предварительно элемент ianacode. Веб-сервис возвратил SOAP с элементом Fault, из которого следует, что в методе отсутствует один аргумент (рис. 10):
Рисунок 10. Ответ веб-сервиса с элементом Fault
Далее зададим в качестве параметра метода countryInfoByIana несуществующий IANA код. Метод вернет SOAP с элементом Fault, который говорит нам о том, что мы должны задать правильный IANA код и указывает на сайт со списком IANA кодов (рис. 11).
Рисунок 11. Ответ веб-сервиса с элементом Fault



Содержание отчета:
Каталог Индекс раздела
Назад Оглавление Вперед