Создание веб-сервиса
Цель работы
Лабораторная работа дает навыки создания и развертывания
веб-сервиса с использованием среды Eclipse,
сервера приложений Apache Tomcat и контейнера Apache Axis, а также развертывания
и удаленной отладки BPEL-процесса в среде ActiveBPEL Designer.
Задачи
- Реализовать веб-сервис по имеющемуся WSDL-описанию.
- Выполнить развертывание веб-сервиса на сервере приложений
и испытать его работоспособность.
- Выполнить развертывание имеющегося BPEL-процесса.
- Проверить работоспособность BPEL-процесса
и осуществить пошаговое выполнение процесса на сервере.
Предварительные требования
Для выполнения работы на компьютере должно быть установлено
следующее ПО:
·
JDK
версии 1.5 или выше.
·
Eclipse IDE версии 3.2.1
или выше с установленными расширениями J2EE Standard Tools
1.5.2 или выше и Web Standard Tools 1.5.2 или выше.
·
ActiveBPEL Designer версии 2.0.
В ходе выполнения работы потребуется следующая информация об
установленном ПО:
·
Папка установки сервера приложений, входящего в комплект ActiveBPEL Designer.
Переменная окружения JAVA_HOME должна указывать на папку, в
которую установлен JDK (это
требуется при запуске сервера приложений).
Для успешного запуска сервера приложений требуются файлы xalan.jar и serializer.jar из
дистрибутива Xalan-Java. Их следует поместить в папку common\lib сервера
приложений.
Для проверки работоспособности BPEL-процесса,
вызывающего удаленный веб-сервис потребуется доступ в Интернет.
При реализации бизнес-процесса потребуются знания технологии
веб-сервисов и в частности WSDL, а также знание языка Java.
Ход работы
Реализация веб-сервиса
Взяв за основу WSDL-описание,
созданное в предыдущей лабораторной работе, сгенерируйте необходимые заглушки и
напишите класс реализации веб-сервиса. Для этого воспользуйтесь мастером
создания веб-сервисов среды Eclipse.
- Запустите среду Eclipse и откройте
проект, созданный в предыдущей лабораторной работе.
- Создайте новый веб-сервис (File →
New → Other → Web Services → Web Service). В поле
Web Service Type выберите Top down Java
bean Web Service. Укажите
расположение WSDL-файла. Установите ползунок на
уровень Deploy Service. Будут сгенерированы все исходные
файлы веб-сервиса и дескриптор развертывания.
- Откройте WSDL-файл в папке WebContent\WSDL
и исправьте ссылку на веб-сервис, которая могла быть изменена мастером
создания веб-сервисов.
- Откройте файл реализации веб-сервиса <имя>Impl.java
и напишите свою реализацию операции вместо шаблонной.
Развертывание веб-сервиса
Веб-сервис будет работать на том же сервере, в котором
установлен BPEL-контейнер. Это сервер приложений Apache Tomcat 5.0, входящий в поставку ActiveBPEL Designer.
- В контекстном меню проекта в среде Eclipse выберите пункт Export. Экспортируйте проект в WAR-файл.
- Запустите сервер приложений через скрипт bin\startup.bat,
находящийся в папке сервера. Появится окно консоли сервера. Об успешном
запуске свидетельствует сообщение INFO: Server startup in 7375 ms и
отсутствие Java-исключений.
- Поместите WAR-файл в папку webapps на
сервере приложений и по сообщениям в консоли сервера и отсутствию
сообщений об ошибках убедитесь, что веб-приложение было установлено успешно.
- Затем необходимо развернуть веб-сервис. В Axis это делается с
помощью специального системного веб-сервиса AdminService,
на вход которому подается дескриптор развертывания deploy.wsdd.
Для вызова этого сервиса существует готовый клиент. Используйте для
развертывания веб-сервиса bat-файл следующего
содержания, предварительно изменив его под свою систему:
set TOMCAT_HOME=G:\Program Files\Active
Endpoints\ActiveBPEL Designer\Server\ActiveBPEL_Tomcat (путь установки сервера
приложений)
set LIBS=%TOMCAT_HOME%\shared\lib
set SERVLET_URL=http://localhost:8080/<имя-проекта>/services/AdminService
java -cp
"%LIBS%\axis.jar";"%LIBS%\commons-discovery.jar";"%LIBS%\commons-logging.jar";"%LIBS%\jaxrpc.jar";"%LIBS%\saaj.jar";"%LIBS%\wsdl4j.jar"
org.apache.axis.client.AdminClient -l%SERVLET_URL% deploy.wsdd
- При успешном развертывании сервиса будет выведено
сообщение
<Admin>Done processing</Admin>
- Проверьте, что сервис был успешно развернут, введя в
адресной строке браузера ссылку, указанную в WSDL-файле.
Должна появиться страница, сообщающая, что по этому адресу установлен AXIS сервис. Добавьте в конце
адреса ?WSDL
и будет выведено WSDL-описание сервиса.
- Попробуйте выполнить операцию веб-сервиса через Web Services Explorer в
среде Eclipse (Run → Launch
the Web Services Explorer). Проверьте правильность работы
веб-сервиса при различных входных данных.
Рисунок 1 – Испытание веб-сервиса в Web Services Explorer

Развертывание BPEL-процесса
- Загрузите ActiveBPEL Designer и откройте проект, созданный в предыдущей лабораторной
работе.
- Создайте новый дескриптор развертывания для BPEL-процесса (File → New →
Deployment Descriptor). Укажите файл BPEL-процесса.
В окне Partner Links для Partner Link-ов, напротив которых стоят
красные крестики, укажите значение Endpoint Type равное
static, как на рисунке:

- Для Partner Link, соответствующего BPEL-процессу
установите поле Binding в значение RPC Encoded.
Остальные поля оставьте со значениями по-умолчанию. Будет создан
дескриптор в файле с расширением pdd.
- Создайте в проекте папку deploy, куда потом будут помещаться
файлы, связанные с развертыванием (File → New
→ Other → Simple → Folder).
- Создайте BPR-файл – архив BPEL-процесса, который будет развернут в BPEL-контейнер. Для этого в контекстном меню проекта
выберите пункт Export, Business
Process Archive File. Пометьте дескриптор развертывания, созданный
на предыдущем этапе. В поле Select the export
destination укажите имя BPR-файла в папке deploy. Выберите
Deployment Type – File и в поле Deployment Location укажите
папку bpr сервера приложений. Нажмите Finish и BPEL-процесс установится
в контейнер, при этом в консоли сервера появятся соответствующие
сообщения.
- Убедиться, что процесс успешно установлен в контейнер
можно также через панель администрирования BPEL Engine – она находится по адресу http://localhost:8080/BpelAdmin/.
В случае неудачного развертывания, посмотрите содержимое Deployment Log в
панели.
- После развертывания BPEL-процесс
доступен для использования как веб-сервис. Вы можете его найти по адресу
вида http://localhost:8080/active-bpel/services/<тип-partner-link-процесса>Service.
Проверка BPEL-процесса
Проверьте работоспособность созданного BPEL-процесса
с помощью Web Services Explorer. Используйте
различные значения переменных, чтобы проверить все пути выполнения.
Рисунок 2 – Результаты выполнения процесса – стоимость доставки контейнера из Нью-Йорка в Вашингтон

Осуществите пошаговое выполнение BPEL-процесса.
Для этого:
- Откройте BPEL-процесс в ActiveBPEL Designer. Выберите блок Receive и установите на нем
точку останова (контекстное меню → Add Breakpoint).
- Создайте конфигурацию для выполнения удаленной сессии
отладки. Для этого выберите пункт меню Run → Debug.
Создайте новую конфигурацию, нажав на кнопку New. Нажмите
кнопку Debug, чтобы начать отладку.
Рисунок 3 – Конфигурация для удаленной отладки

- Запустите сервис BPEL-процесса
через Web Services Explorer и вернитесь в ActiveBPEL Designer и выполните пошагово процесс, так же как при моделировании
в предыдущей лабораторной работе.
Рисунок 4 – Сессия удаленной отладки BPEL-процесса

Результаты
В результате выполнения данной работы был реализован,
установлен и развернут веб-сервис, а также развернут и отлажен BPEL-процесс, соответствующий бизнес-процессу из выбранной
предметной области.
Вопросы для самоконтроля
- Почему используется контейнер Apache Axis для реализации веб-сервисов?
- Чем «Top down» реализация веб-сервиса отличается от «Bottom up»?
- Как определить, что сервер приложений был успешно запущен?
- Как развернуть веб-сервис в контейнере Apache Axis?
- Перечислите все способы убедиться в том, что веб-сервис
был успешно развернут в контейнере.
- Какая информация помещается в дескриптор развертывания BPEL-процесса?
- Какие возможности предоставляет панель администрирования BPEL
Engine?
- Перечислите все признаки, по которым можно судить об
успешном развертывании BPEL-процесса.
- Как запустить пошаговую удаленную отладку BPEL-процесса?