В предыдущей статье мы узнали, как создать простой веб-сервис. В этой статье мы обсудим, как получить доступ к этому веб-сервису и использовать его.
Чтобы получить доступ к веб-сервису, нам нужно знать артефакты сервиса и его местоположение.
Артефакты службы описаны в документе, называемом файлом WSDL (язык описания веб-службы). Файл WSDL содержит информацию, относящуюся к службе, такую как типы, операции службы, информация о привязке и типе порта. Более подробная информация об этой и других задействованных технологиях будет обсуждаться в следующей статье. Но некоторые детали WSDL обсуждаются ниже.
Зачем нам нужен WSDL?
Потому что именно с этим поставщик веб-услуг и потребитель придут к пониманию и согласию относительно того, какой информацией следует обмениваться и каковы типы данных, протоколы и семантика веб-службы. По этой причине мы называем WSDL как интерфейс между поставщиком услуг и потребителем услуг.
Как это выглядит?
Файл WSDL — это не что иное, как документ XML, описывающий операции веб-службы, типы данных и их местоположение. Пример файла WSDL, созданного для нашего простого веб-сервиса, приведен ниже.
Кто создает WSDL?
Поставщик услуг создает WSDL и публикует его. В сервисе, который мы разработали в предыдущей статье , мы не создаем и не публикуем WSDL вручную, вместо этого он создается и публикуется средой выполнения JAX-WS.
Что клиент (или потребитель веб-сервиса) делает с WSDL?
Читая WSDL, клиент будет знать, каковы операции веб-службы, какие типы данных, какие протоколы и т. Д. Не только зная эти детали, клиент теперь может создать клиента, который совместим с опубликованным WSDL. и начать доступ к нему.
Как мы строим клиента?
Существуют разные способы доступа к веб-сервису.
Если вы хотите быстро протестировать веб-сервис, есть известный инструмент под названием SoapUI. SoapUI — это инструмент тестирования веб-сервисов с открытым исходным кодом. Это просто в использовании. Вы можете скачать его отсюда и попробовать.
Если вы хотите разработать его самостоятельно, давайте приступим к созданию клиента веб-службы Java, который будет иметь доступ к простому сервису, который мы создали в предыдущей статье .
Нам нужно выполнить следующие шаги для создания клиента веб-службы.
Шаг 1. Создайте необходимые артефакты веб-службы, такие как типы данных, типы портов и классы заглушек веб-служб на стороне клиента, используя URL-адрес WSDL.
Чтобы сгенерировать эти артефакты в Java, нам нужно вызвать инструмент wsimport, который поставляется с JDK 6 и более поздними версиями .
Примечание. Если вы планируете создать клиент веб-службы на других языках программирования (.NET, C ++, PHP и т. Д.), Процесс будет другим, и вам необходимо просмотреть соответствующую языковую документацию.
Синтаксис выполнения инструмента wsimport приведен ниже.
wsimport [параметры] <WSDL_URI>
Наиболее часто используемые параметры перечислены ниже:
-s: указать каталог, в котором нужно хранить сгенерированные исходные файлы java из WSDL.
-p: имя пакета, с которым нужно скопировать исходные файлы
-d: каталог, в котором должны храниться скомпилированные файлы классов.
-b <путь>: используется, когда нам нужно указать любые дополнительные файлы XSD вместе с WSDL_URI.
Для нашего примера нам нужно выполнить следующую команду, предполагая, что веб-сервис развернут на локальном коте. При необходимости измените или создайте часть URI и пути к каталогам в соответствии с вашей средой.
wsimport -s src -d bin -p com.accrd.blog.ws.jaxws.sample.client http: // localhost: 8080 / SimpleWebService / SimpleWebService? wsdl
Приведенная выше команда будет генерировать необходимые Java-артефакты в указанном пакете в папке ‘src’ в зависимости от элементов в WSDL. Скомпилированная версия сгенерированных артефактов сохраняется в папке «bin».
Шаг 2: Теперь создайте класс Java, который будет использовать сгенерированные артефакты и вызывать веб-сервис. Код для этого приведен ниже. Все важные строки документированы для лучшего понимания.
Шаг 3: Теперь скомпилируйте и запустите этот класс как автономное приложение Java из командной строки или из вашей любимой IDE. Ответ на вызов веб-службы печатается.
> java com.accrd.blog.ws.jaxws.sample.client.SimpleWSClient
Ответ от вызова веб-службы: Здравствуйте, Accordess!
Проект Eclipse Indigo для этого примера клиента веб-службы можно скачать здесь
В этой и предыдущей статье было описано, как создать простой веб-сервис и получить к нему доступ с помощью клиента веб-сервиса. Это помогло нам понять, как работает веб-сервис с быстрым примером в руках.
Наша следующая статья из этой серии посвящена истории, развитию и технологиям веб-сервисов.
От http://www.accordess.com/wpblog/2012/01/02/working-with-jax-ws-web-services-building-a-web-service-client/