Создание веб-служб Apache Axis2 в среде IDE NetBeans
Это руководство посвящено созданию и развертыванию веб-службы Apache Axis2 из класса Java. Также рассматривается настройка серверов Tomcat и GlassFish, входящих в комплект поставки среды IDE NetBeans, для развертывания веб-служб Axis2. Кроме того, в руководстве показана настройка параметров Axis2 в среде IDE для обеспечения правильного развертывания веб-служб Axis2.
Apache Axis представляет собой реализацию SOAP (простой протокол доступа к объектам), представленного к рассмотрению консорциумом W3C. Apache Axis2 – более эффективная, более модульная и более ориентированная на XML версия Axis. В Axis2 не только поддерживается SOAP 1.1 и SOAP 1.2, но также интегрирована поддержка веб-служб RESTful. Одна и та же реализация рабочей логики может одновременно обладать как интерфейсом WS-*, так и интерфейсом REST/POX. Для получения дополнительных сведений об Axis2 см. веб-сайт Apache.org.
Веб-службы Axis2 способны к взаимодействию с Metro. Для веб-службы Axis2 можно создать клиент JAX-WS, однако некоторые более сложные операции WSDL Axis2 могут не поддерживаться.
Для работы с этим руководством также требуется подключаемый модуль поддержки Axis2. В среде IDE перейдите в диспетчер подключаемых модулей в меню "Tools" и на вкладке "Installed" проверьте, установлен ли подключаемый модуль поддержки Axis2. Если нет, установите его на вкладке "Available Plugins", как показано ниже:
Установка Apache Axis2 и Apache Ant
Как Apache Axis2, так и Apache Ant загружаются в виде архивных файлов. Axis2 можно загрузить здесь, а Ant – здесь. Для установки этих программ необходимо распаковать загруженные архивы в папки по выбору. Далее по тексту каталоги установки называются AXIS2_HOME и ANT_HOME соответственно. После установки Ant путь к каталогу ANT_HOME/bin необходимо добавить в путь к классам.
Создание и копирование файла WAR Axis2
Для развертывания веб-служб Axis2 на сервер приложений на сервере требуется копия файла axis2.war (Web ARchive). Файл axis2.war можно создать путем запуска Apache Ant в каталоге установки Axis2. Скопируйте созданный файл axis2.war в базовый каталог Tomcat и GlassFish.
Создание и копирование файла WAR Axis2:
Перейдите к AXIS2_HOME/webapp. Откройте командную строку в этом каталоге и выполните команду ant. На основе файла AXIS2_HOME/webapp/build.xml в Ant создается файл AXIS2_HOME/dist/axis2.war. В путь к классам должен входить каталог ANT_HOME/bin.
Скопируйте файл AXIS2_HOME/dist/axis2.war в каталог Tomcat CATALINA_BASE/webapps. Если местоположение CATALINA_BASE неизвестно, запустите среду IDE и откройте вкладку "Services". Разверните узел "Servers". Щелкните правой кнопкой мыши узел "Tomcat 6.0" и выберите из контекстного меню "Properties". Местоположение "Catalina Base" показано на вкладке "Connection".
Скопируйте AXIS2_HOME/dist/axis2.war в GLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy. Для определения местоположения GLASSFISH_HOME и имени области запустите среду IDE и откройте вкладку "Services". Разверните узел "Servers". Щелкните правой кнопкой мыши узел "GlassFish V2" и выберите из контекстного меню "Properties". Местоположение папки "Domains" и имя области показаны на вкладке "Connection". Например, из следующего рисунка видно, что axis2.war требуется скопировать в C:\Program Files\glassfish-v2ur1\domains\domain1\autodeploy.
Настройка параметров Axis2 для Tomcat
Производительность служб Axis на Tomcat выше, чем на GlassFish, однако процедура настройки несколько сложнее. Одну и ту же службу несложно развернуть и на Tomcat, и на GlassFish – для этого достаточно развернуть ее на одном из серверов, затем изменить параметры настройки Axis2 и развернуть службу на другом сервере.
Укажите в качестве целевого каталога для файлов AAR Axis2 каталог CATALINA_BASE (не TOMCAT_HOME) webapps/axis. Местоположение каталога CATALINA_BASE можно определить из свойств "Tomcat Servers" в соответствии с описанием в разделе Создание и копирование файла WAR Axis2.
Убедитесь, что в поле "Axis 2 URL" указан правильный номер порта сервера Tomcat. Для проверки номера порта запустите Tomcat (из вкладки "Services" или в меню "Tools -> Servers") и проверьте порт, назначенный для "Coyote HTTP/1.1".
Для удобства выберите "Use Tomcat Manager for Deployment". При выборе этой функции при каждом изменении axis2.war в фоновом режиме вызывается диспетчер Tomcat и для файла axis2.war выполняется команда reload. Если параметр "Use Tomcat Manager for Deployment" не установлен, при каждом изменении axis2.war придется запускать диспетчер Tomcat вручную или перезагружать файл с помощью других средств Tomcat.
Имя пользователя для диспетчера Tomcat по умолчанию – "tomcat", а пароль по умолчанию – также "tomcat". Для дополнительной проверки развертывания диспетчера Tomcat и проверки назначения имени пользователя роли диспетчера и пароля по умолчанию откройте файл CATALINA_BASE/conf/tomcat-users.xml. В нем должна быть определена роль диспетчера, и ей должны быть назначены имя пользователя и пароль, как в следующей версии файла. (Этот файл при необходимости можно скопировать и вставить.)
Веб-службы Axis2 можно развернуть на сервере приложений GlassFish, однако Tomcat отличается гораздо более высокой производительностью. Одну и ту же службу несложно развернуть и на Tomcat, и на GlassFish – для этого достаточно развернуть ее на одном из серверов, затем изменить параметры настройки Axis2 и развернуть службу на другом сервере.
Укажите в качестве целевого каталога для файлов AAR Axis2 каталог GLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy. Местоположение каталога GLASSFISH_HOME можно определить из свойств "GlassFish Servers" в соответствии с описанием в разделе Создание и копирование файла WAR Axis2.
Примечание: Размещение файла axis2.war в каталоге autodeploy позволяет GlassFish автоматически развертывать файл axis2.war при каждом изменении.
Убедитесь, что в поле "Axis 2 URL" указан правильный номер порта сервера GlassFish. Для проверки номера порта запустите GlassFish (с вкладки "Services" или в меню "Tools -> Servers") и проверьте порт 80xx, назначенный для HTTP/1.1. На следующем рисунке правильный номер порта – 8081:
Примечание: Если используется Windows Vista, сервер GlassFish установлен в "Program Files" и включена функция "User Access Control", внести изменения в файл axis2.war из среды IDE невозможно. Установите GlassFish в другой каталог или отключите функцию UAC.
Создание веб-службы Axis2
В среде IDE NetBeans веб-службу Axis2 можно создать из класса Java. Это возможно только для проекта приложения на Java или библиотеки Java. Настоящее руководство посвящено созданию проекта библиотеки Java (поскольку главный метод не требуется), созданию веб-службы Axis2 в этом проекте (одновременно создается класс Java) и развертыванию веб-службы Axis2 на сервере.
Создание и развертывание веб-службы Axis2:
Щелкните значок "New Project" или выберите в меню "File -> New Project". Откроется мастер создания проекта. Выберите проект библиотеки классов Java в категории "Java". Нажмите кнопку "Next".
Присвойте проекту имя AxisHello. Убедитесь, что используется правильное имя и местоположение папки проекта. Решение о необходимости совместного использования проекта принимается разработчиком. Нажмите кнопку "Finish" для создания проекта.
Щелкните правой кнопкой мыши узел проекта. Откроется контекстное меню. Выберите в контекстном меню "New -> Other". Открывается мастер создания файла. Выберите "Axis2 Service from Java" из категории "Web Services" и нажмите кнопку "Next".
Открывается страница мастера создания файла "Service Type Selection". В проекте отсутствуют классы Java, поэтому выберите "Create an Empty Web Service". Если класс Java уже разработан, можно установить переключатель "Create a Web Service from an Existing Java Class". Если требуется изменить WSDL веб-службы, например, добавить или изменить пространства имен, следует установить переключатель "Generate a WSDL from Java Source Code". Изменение WSDL выходит за рамки данного руководства, поэтому устанавливать этот переключатель здесь не требуется. Мастер должен выглядеть следующим образом:
Нажмите кнопку "Next". Откроется страница "Name and Location". Назовите класс Java "HelloAxisWorld". Присвойте пакету имя "axishello". Параметр "Generate Sample Method" должен быть установлен. В результате создается метод в классе Java, возвращающий "Hello, World".
Нажмите кнопку "Finish". В среде IDE создается класс HelloAxisWorld.java в пакете исходного кода "axishello" и веб-служба Axis2 "HelloAxisWorld", на которую отображен этот класс Java. Можно заметить, что и в классе Java, и в веб-службе Axis2 имеется операция "hello:String", показанная на вкладке "Navigator" и в виде узла в веб-службе Axis2 соответственно.
Развертывание и тестирование веб-службы Axis2
Созданную веб-службу Axis2 необходимо развернуть на сервере. Фактически развертывание на сервере сводится к двум действиям:
Копирование веб-службы Axis2 в файл "axis2.war" используемый сервером. Это действие может выполняться при неработающем сервере.
Повторное развертывание на сервере обновленного файла "axis2.war".
Если развертывание выполняется на сервере Tomcat с включенным параметром "Use Tomcat Manager for Deployment" (см. раздел Настройка параметров Axis2 для Tomcat) или на сервере GlassFish с файлом axis2.war в папке GLASSFISH_DOMAIN/autodeploy (см. Настройка параметров Axis2 для GlassFish), обновленный файл axis2.war автоматически повторно развертывается на сервере. В противном случае повторное развертывание файла axis2.war выполняется вручную с помощью средств сервера приложений. В этом руководстве предполагается настройка параметров Axis2, так что повторное развертывание выполняется автоматически.
Развертывание веб-службы Axis2 на сервере:
Щелкните узел веб-службы правой кнопкой мыши. Откроется контекстное меню. Выберите "Deploy to Server". Файл "AAR" Axis2 компилируется и копируется в файл axis2.war, используемый сервером приложений.
Если включено автоматическое развертывание, веб-служба развертывается на сервере. Если сервер не запущен, автоматическое развертывание выполняется при запуске.
Для тестирования службы разверните узел веб-службы и разверните соответствующие операции. Щелкните правой кнопкой мыши узел "hello:String" и выберите "Test Operation in Browser".
В результате открывается обозреватель с тестовыми значениями переменных. Тестовое значение добавляется к URL-адресу.
Измените значение переменной в URL-адресе и нажмите клавишу Enter. При этом изменяется и результат тестирования.
Изменение операций веб-службы
Для изменения операций веб-службы необходимо изменить файл Java в проекте. Одновременно изменяются и операции веб-службы. Добавьте к HelloAxisWorld.java простой метод add, как показано ниже:
public class HelloAxisWorld {
/** Sample method
*/
public String hello(String name) {
return "Hello "+name;
}
public int add(int x, int y) {
return x+y;
}
}
После сохранения файла Java операция выводится в качестве подузла веб-службы.
Создайте клиент JAX-WS для веб-службы Axis2. Потребуется URL-адрес WSDL веб-службы. Щелкните правой кнопкой мыши узел веб-службы и выберите "Properties". URL-адрес файла WSDL расположен на странице "Properties". Для получения дополнительных сведений о веб-службах JAX-WS см. Начало работы с веб-службами JAX-WS и Разработка клиентов веб-служб JAX-WS.
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .