Главная » Java, Web, XML » Использование описаний WSDL

0

Конфигурационный DD-файл записывается в формате, специально разработанном для Axis. Такой файл не переносим в другие системы обеспечения Web-служб. Но в Axis можно использовать и другое средство описания Web- служб — язык WSDL.

В своей работе Axis широко использует описания WSDL (см. главы 2, 4), даже если вы их не сделали. Наберите в браузере Internet Explorer строку http://localhost:8080/axis/EchoService.jws?WSDL, и вы увидите в окне браузера описание Web-службы EchoService, сделанное на языке WSDL. Оно сгенерировано автоматически методами класса

Создание WSDL-файла по классу Java

По имеющемуся откомпилированному классу или интерфейсу Axis может создать его описание на языке WSDL. Для этого в составе Axis есть класс

Он работает из командной строки примерно так: $ java org.apache.axis.wsdl.Java2WSDL -o echo .wsdl \ -l"http://localhost:8080/axis/services/echo" \ -n "urn:echo" -p"echoservice" urn:echo EchoService

В этой командной строке за флагом -о записывается имя создаваемого WSDL-файла echo.wsdl.

За флагом -1 идет URI, последнее имя которого, echo, будет именем порта в WSDL-файле.

За флагом -п стоит идентификатор пространства имен WSDL-файла urn:echo.

За флагом -р расположены два параметра через пробел: параметр echoservice — это имя пакета, а параметр urn:echo — идентификатор пространства имен.

Наконец, последнее имя EchoService в командной строке — это имя класса, для которого создается описание WSDL.

В результате выполнения этой команды в текущем каталоге создается файл echo.wsdl с описанием WSDL класса Echoservice.

Создание Web-службы по WSDL-файлу

По имеющемуся описанию Web-службы на языке WSDL можно построить Web-службу с помощью класса wsDL2Java. Для этого надо набрать в командной строке следующее:

$ java org.apache.axis.wsdl.WSDL2Java -o . -d Session -s \ -p echo.ws echo.wsdl

В этой командной строке флаг -о указывает каталог, в который надо поместить создаваемые файлы. В данном случае это текущий каталог. На это указывает точка, следующая за флагом -о.

Флаг -d определяет продолжительность работы Web-службы одним из трех слов:

? Application — один экземпляр Web-службы обслуживает все запросы;

Request — для обслуживания каждого запроса создается свой экземпляр Web-службы (по умолчанию);

•Session — экземпляр Web-службы образует сеанс связи с клиентом.

Флаг -s указывает на то, что следует создать все файлы, необходимые для работы сервера Web-службы.

За флагом -р идет имя пакета echo.ws, в котором будут лежать создаваемые классы.

Наконец, последнее слово в командной строке — это имя WSDL-файла echo.wsdl.

Команда создаст в текущем каталоге echo подкаталог ws, а в нем множество файлов, образующих           заглушки, скелетоны и вспомогательные

файлы, необходимые для работы удаленного объекта системы RMI. В их числе есть и конфигурационные DD-файлы deploy.wsdd. и undeploy.wsdd.

Среди этих файлов находится файл EchoServiceSoapBindinglmpl.java, в котором надо реализовать методы Web-службы, как это обычно делается в системе RMI [10].

Удаленный интерфейс системы RMI заносится в файл EchoServicePortType.java, а его клиентская заглушка — в файл

Клиент создает заглушку методом getEchoServicePort о класса-фабрики, записанного в файл EchoService.java.

После того как это сделано, надо откомпилировать все файлы в каталоге echo/ws:

$ javac echo/ws/*.java

Потом перейти в каталог ws и установить созданную Web-службу в сервер приложений:

$java org.apache.axis.client.AdminClient deploy.wsdd

Литература:

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

По теме:

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