Главная » Java, Web, XML » Установка Web-службы в контейнер

0

Поскольку по спецификации "Web Services for J2EE" Web-служба реализуется с помощью сервлетов или session-компонентов, ее надо установить (deploy) в Web- или EJB-контейнер как всякий компонент J2EE- приложения. В процессе установки создаются клиентские заглушки и серверные связки системы RMI, каталоги для их размещения, пути к ним и переменные окружения, составляющие контекст приложения. Правила установки описаны, например, в книге [10]. Производители 12ЕЕ-серверов предоставляют утилиты установки, облегчающие этот процесс. В стандартную поставку пакета J2EE SDK входит графическая утилита deploytool, которая открывает последовательно несколько диалоговых окон, собирая сведения об устанавливаемом компоненте, и затем устанавливает компонент в контейнер.

Утилита установки Web-службы, реализованной по правилам спецификации WS4EE, должна учитывать, что Web-служба работает под управлением механизма JAX-RPC, а не механизма RMI. Кроме того, в процессе установки надо создать или использовать несколько конфигурационных файлов: WSDL-файл, конфигурационный файл компонента web.xml или ear-jar.xml, конфигурационный файл Web-службы webservices.xml, конфигурационный файл клиента webservicesclient.xml и JAX-RPC-файл. Поэтому для Web- службы надо использовать специализированные средства установки.

Фирма IBM поставляет эталонную реализацию (RI — Reference Implementation) спецификации "Web Services for J2EE" со своего сайта http://www-106.ibm.com/developerworks/webservices/. В нее входят классы, полностью реализующие интерфейсы спецификации, вспомогательные классы и утилиты. Классы эталонной реализации расширяют пакет классов

J2EE SDK, образующих J2EE-cepBep и используются Web-службами, установленными на этом сервере.

Для построения Web-службы эталонная реализация предлагает утилиту svcgen (Web Service Generator), работающую из командной строки. Ее можно использовать двумя способами: или для создания Web-службы по уже откомпилированным интерфейсам и классам, или для создания Web- службы по ее описанию

В первом случае командная строка выглядит так:

$ svcgen [ -classpath <path> ] -sei <classname> \ -map <namespace> <pkg> -wsdl <WSDLfile>

В этой строке необязательный параметр -classpath указывает путь к классам Web-службы. Параметр -sei содержит краткое имя SEI-интерфейса без расширения .class. Параметр -тар связывает идентификатор целевого пространства имен создаваемого утилитой WSDL-файла с пакетом классов Java. Параметр -wsdl содержит имя создаваемого утилитой WSDL-файла.

Во втором случае командная строка выглядит иначе:

$ svcgen -wsdl <WSDLfile> -map <namespace> <pkg> [ -dir <path> ]

Здесь параметр -wsdl содержит имя уже существующего WSDL-файла. Параметр -тар определяет имя создаваемого пакета Java. Необязательный параметр -dir указывает имя каталога, в который будут помещены создаваемые утилитой файлы Java и JAX-RPC-файл, имя которого повторяет имя WSDL-файла с окончанием ".deployment.xmr. Если этот параметр опущен, то файлы будут помещены в каталог $WS4EE_HOME/temp/svcgen/. Созданные файлы надо просмотреть, добавить в них фактический код Web-службы и откомпилировать.

После создания Web-службы ее надо упаковать в архив application.ear обычными средствами J2EE-cepBepa, например, утилитой           При упаковке надо включить в архив файл а для клиента файл webservicesclient.xml. Это можно сделать впоследствии утилитой wsdd.

Установка созданной и упакованной Web-службы выполняется утилитой Ее командная строка выглядит так:

$ wsdepioy <input.ear> [ <output. jar> ]

Первый параметр <input.ear> —исходный архив — должен находиться в текущем каталоге. Утилита создает файл с именем Enabled<input.еаг>, полностью готовый для утилиты deploytooi. Если указан второй параметр <output.jar>, то утилита создаст архив, содержащий все необходимое для установки клиента Web-службы. Затем утилита wsdepioy вызывает утилиту deploytooi, которая заканчивает процесс установки.

Литература:

Хабибуллин И. Ш. Разработка Web-служб средствами Java. — СПб.: БХВ-Петербург, 2003. — 400 с: ил.

По теме:

  • Комментарии