
Java_26_1.ppt
- Количество слайдов: 47
Создание веб-служб Apache Axis 2 в среде IDE Net. Beans ¡Установка Apache Axis 2 и Apache Ant ¡Создание и копирование файла WAR Axis 2 ¡Настройка параметров Axis 2 для Tomcat ¡Настройка параметров Axis 2 для Glass. Fish ¡Создание веб-службы Axis 2 ¡Развертывание и тестирование веб-службы Axis 2 ¡Изменение операций веб-службы ¡Дополнительные упражнения
Требуемое программное обеспечение и ресурсы Программное обеспечение или ресурс Требуемая версия Среда IDE Net. Beans версия 6. 1 Комплект для разработчика на языке Java (JDK) версия 6 или версия 5 Apache Axis 2 версия 1. 3 или выше Apache Ant, установленный и добавленный в путь последняя версия Веб-сервер или сервер приложений, совместимый с Java EE Веб-сервер Tomcat Сервер приложений Glass. Fish v 2 6. 0 и/или Серверы Tomcat и Glass. Fish могут быть установлены при помощи дистрибутива "Web and Java EE" среды IDE Net. Beans. Также можно воспользоваться страницей загрузок Glass. Fish или страницей загрузок Apache Tomcat.
Подключаемый модуль поддержки Axis 2 Для работы также требуется подключаемый модуль поддержки Axis 2. В среде IDE перейдите в диспетчер подключаемых модулей в меню "Tools" и на вкладке "Installed" проверьте, установлен ли подключаемый модуль поддержки Axis 2. Если нет, установите его на вкладке "Available Plugins", как показано ниже:
Установка Apache Axis 2 и Apache Ant Как Apache Axis 2, так и Apache Ant загружаются в виде архивных файлов. Для установки этих программ необходимо распаковать загруженные архивы в папки по выбору. Далее по тексту каталоги установки называются AXIS 2_HOME и ANT_HOME соответственно. После установки Ant путь к каталогу ANT_HOME/bin необходимо добавить в путь к классам. Создание и копирование файла WAR Axis 2 Для развертывания веб-служб Axis 2 на сервер приложений на сервере требуется копия файла axis 2. war (Web ARchive). Файл axis 2. war можно создать путем запуска Apache Ant в каталоге установки Axis 2. Скопируйте созданный файл axis 2. war в базовый каталог Tomcat и Glass. Fish. Создание и копирование файла WAR Axis 2: ¡ Перейдите к AXIS 2_HOME/webapp. Откройте командную строку в этом каталоге и выполните команду ant. ("ant create. war" внутри $AXIS 2_HOME/webapps. ) На основе файла AXIS 2_HOME/webapp/build. xml в Ant создается файл AXIS 2_HOME/dist/axis 2. war. В путь к классам должен входить каталог ANT_HOME/bin. 1. Скопируйте файл AXIS 2_HOME/dist/axis 2. war в каталог Tomcat CATALINA_BASE/webapps. Если местоположение CATALINA_BASE неизвестно, запустите среду IDE и откройте вкладку "Services". Разверните узел "Servers". Щелкните правой кнопкой мыши узел "Tomcat 6. 0" и выберите из контекстного меню "Properties". Местоположение "Catalina Base" показано на вкладке "Connection".
Местоположение «Catalina Base»
GLASSFISH Скопируйте AXIS 2_HOME/dist/axis 2. war в GLASSFISH_HOME/domains/DOMAIN_NAME/auto deploy. Для определения местоположения GLASSFISH_HOME и имени области запустите среду IDE и откройте вкладку "Services". Разверните узел "Servers". Щелкните правой кнопкой мыши узел "Glass. Fish V 2" и выберите из контекстного меню "Properties". Местоположение папки "Domains" и имя области показаны на вкладке "Connection". Например, из следующего рисунка видно, что axis 2. war требуется скопировать в C: Program Filesglassfishv 2 ur 1domainsdomain 1autodeploy.
Вкладка "Connection".
Настройка параметров Axis 2 для Tomcat Производительность служб Axis на Tomcat выше, чем на Glass. Fish, однако процедура настройки несколько сложнее. Одну и ту же службу несложно развернуть и на Tomcat, и на Glass. Fish – для этого достаточно развернуть ее на одном из серверов, затем изменить параметры настройки Axis 2 и развернуть службу на другом сервере. Если требуется развертывание на Glass. Fish вместо Tomcat, перейдите к разделу Настройка параметров Axis 2 для Glass. Fish. Настройка параметров Axis 2 для Tomcat Запустите среду IDE. В главном меню выберите "Tools -> Options". Откроется диалоговое окно "Options". Щелкните значок "Axis 2". Откроется страница параметров развертывания Axis 2.
Страница параметров развертывания Axis 2
Настройка параметров Axis 2 для Tomcat Укажите в качестве целевого каталога для файлов AAR Axis 2 каталог CATALINA_BASE (не TOMCAT_HOME) webapps/axis. Местоположение каталога CATALINA_BASE можно определить из свойств " Tomcat Servers" в соответствии с описанием в разделе Создание и копирование файла WAR Axis 2. Убедитесь, что в поле "Axis 2 URL" указан правильный номер порта сервера Tomcat. Для проверки номера порта запустите Tomcat (из вкладки "Services" или в меню "Tools -> Servers") и проверьте порт, назначенный для "Coyote HTTP/1. 1". Для удобства выберите "Use Tomcat Manager for Deployment". При выборе этой функции при каждом изменении axis 2. war в фоновом режиме вызывается диспетчер Tomcat и для файла axis 2. war выполняется команда reload. Если параметр "Use Tomcat Manager for Deployment" не установлен, при каждом изменении axis 2. war придется запускать диспетчер Tomcat вручную или перезагружать файл с помощью других средств Tomcat. Имя пользователя диспетчера Tomcat по умолчанию – "tomcat", а пароль по умолчанию – также "tomcat". Для дополнительной проверки развертывания диспетчера Tomcat и проверки назначения имени пользователя роли диспетчера и пароля по умолчанию откройте файл CATALINA_BASE/conf/tomcat-users. xml. В нем должна быть определена роль диспетчера, и ей должны быть назначены имя пользователя и пароль, как в следующей версии файла. (Этот файл при необходимости можно скопировать и вставить. ) ¡ ¡ ¡ ¡ <? xml version='1. 0' encoding='utf-8'? > <tomcat-users> <rolename="manager"/> <rolename="admin"/> <username="tomcat" password="tomcat" roles="manager, admin"/> <username="ide" password="YENn. S 8 UT" roles="manager, admin"/> </tomcat-users>
Настройка параметров Axis 2 для Glass. Fish ¡ Веб-службы Axis 2 можно развернуть на сервере приложений Glass. Fish, однако Tomcat отличается гораздо более высокой производительностью. Одну и ту же службу несложно развернуть и на Tomcat, и на Glass. Fish – для этого достаточно развернуть ее на одном из серверов, затем изменить параметры настройки Axis 2 и развернуть службу на другом сервере. ¡ Если требуется развертывание на Tomcat вместо Glass. Fish, перейдите к разделу Настройка параметров Axis 2 для Tomcat. ¡ Настройка параметров Axis 2 для Glass. Fish: Запустите среду IDE. В главном меню выберите "Tools -> Options". Откроется диалоговое окно "Options". Щелкните значок "Axis 2". Откроется страница параметров развертывания Axis 2. ¡ ¡
Страница параметров развертывания Axis 2.
Установка в Glassfish ¡ Укажите в качестве целевого каталога для файлов AAR Axis 2 каталог GLASSFISH_HOME/domains/DOMAIN_NAME/autodeploy. Местоположение каталога GLASSFISH_HOME можно определить из свойств "Glass. Fish Servers" в соответствии с описанием в разделе Создание и копирование файла WAR Axis 2. ¡ Примечание: Размещение файла axis 2. war в каталоге autodeploy позволяет Glass. Fish автоматически развертывать файл axis 2. war при каждом изменении. Убедитесь, что в поле "Axis 2 URL" указан правильный номер порта сервера Glass. Fish. Для проверки номера порта запустите Glass. Fish (с вкладки "Services" или в меню "Tools -> Servers") и проверьте порт 80 xx, назначенный для HTTP/1. 1. На следующем рисунке правильный номер порта – 8081: ¡
Создание веб-службы Axis 2 В среде IDE Net. Beans веб-службу Axis 2 можно создать из класса Java. Это возможно только для проекта приложения на Java или библиотеки Java. Настоящее руководство посвящено созданию проекта библиотеки Java (поскольку главный метод не требуется), созданию веб-службы Axis 2 в этом проекте (одновременно создается класс Java) и развертыванию веб-службы Axis 2 на сервере. Создание и развертывание веб-службы Axis 2: Щелкните значок "New Project" или выберите в меню "File -> New Project". Откроется мастер создания проекта. Выберите проект библиотеки классов Java в категории "Java". Нажмите кнопку "Next". Присвойте проекту имя Axis. Hello. Убедитесь, что используется правильное имя и местоположение папки проекта. Решение о необходимости совместного использования проекта принимается разработчиком. Нажмите кнопку "Finish" для создания проекта. Щелкните правой кнопкой мыши узел проекта. Откроется контекстное меню. Выберите в контекстном меню "New -> Other". Открывается мастер создания файла. Выберите "Axis 2 Service from Java" из категории "Web Services" и нажмите кнопку "Next".
Создание веб-службы Axis 2
Создание веб-службы Axis 2 Открывается страница мастера создания файла "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". Мастер должен выглядеть следующим образом:
Создание веб-службы Axis 2
Создание веб-службы Axis 2 Нажмите кнопку "Next". Откроется страница "Name and Location". Назовите класс Java "Hello. Axis. World". Присвойте пакету имя "axishello". Параметр "Generate Sample Method" должен быть установлен. В результате создается метод в классе Java, возвращающий "Hello, World". Нажмите кнопку "Finish". В среде IDE создается класс Hello. Axis. World. java в пакете исходного кода "axishello" и веб-служба Axis 2 "Hello. Axis. World", на которую отображен этот класс Java. Можно заметить, что и в классе Java, и в веб-службе Axis 2 имеется операция "hello: String", показанная на вкладке "Navigator" и в виде узла в веб-службе Axis 2 соответственно.
Создание веб-службы Axis 2
Развертывание и тестирование вебслужбы Axis 2 Созданную веб-службу Axis 2 необходимо развернуть на сервере. Фактически развертывание на сервере сводится к двум действиям: Копирование веб-службы Axis 2 в файл "axis 2. war" используемый сервером. Это действие может выполняться при неработающем сервере. Повторное развертывание на сервере обновленного файла "axis 2. war". Если развертывание выполняется на сервере Tomcat с включенным параметром "Use Tomcat Manager for Deployment" или на сервере Glass. Fish с файлом axis 2. war в папке GLASSFISH_DOMAIN/autodeploy, обновленный файл axis 2. war автоматически повторно развертывается на сервере. В противном случае повторное развертывание файла axis 2. war выполняется вручную с помощью средств сервера приложений. В этом руководстве предполагается настройка параметров Axis 2, так что повторное развертывание выполняется автоматически.
Развертывание веб-службы Axis 2 на сервере Щелкните узел веб-службы правой кнопкой мыши. Откроется контекстное меню. Выберите "Deploy to Server". Файл "AAR" Axis 2 компилируется и копируется в файл axis 2. war, используемый сервером приложений. Если включено автоматическое развертывание, веб-служба развертывается на сервере. Если сервер не запущен, автоматическое развертывание выполняется при запуске. Для тестирования службы разверните узел вебслужбы и разверните соответствующие операции. Щелкните правой кнопкой мыши узел "hello: String" и выберите "Test Operation in Browser".
"Test Operation in Browser" В результате открывается обозреватель с тестовыми значениями переменных. Тестовое значение добавляется к URL-адресу.
Обозреватель с тестовыми значениями переменных. Тестовое значение добавляется к URL-адресу.
Изменение операций веб-службы Для изменения операций веб-службы необходимо изменить файл Java в проекте. Одновременно изменяются и операции веб-службы. Добавьте к Hello. Axis. World. java простой метод add, как показано ниже: public class Hello. Axis. World { /** Sample method */ public String hello(String name) { return "Hello "+name; } public int add(int x, int y) { return x+y; } } После сохранения файла Java операция выводится в качестве подузла веб-службы.
Изменение операций веб-службы
Дополнительные упражнения ¡ Повторно разверните веб-службу и протестируйте ее, как описано в разделе Развертывание и тестирование веб-службы Axis 2. ¡ Вот еще несколько примеров для рассмотрения: Создайте клиент JAX-WS для веб-службы Axis 2. Потребуется URL-адрес WSDL веб-службы. Щелкните правой кнопкой мыши узел веб-службы и выберите "Properties". URL-адрес файла WSDL расположен на странице "Properties". Попытайтесь развернуть веб-службу на другом сервере приложений. Для этого потребуется изменить параметры Axis 2 (см. Настройка параметров Axis 2 для Tomcat или Настройка параметров Axis 2 для Glass. Fish). Выставьте существующий класс Java в качестве вебслужбы Axis 2. Класс Java должен входить в проект приложения на Java или библиотеки классов Java. ¡ ¡ ¡
Начало работы с веб-службами JAXWS Интерфейс API Java для веб-служб XML (JAX-WS) 2. 0/2. 1, JSR 224 является важной частью платформы Java EE 5. Следующий выпуск интерфейса API Java для RPC на основе XML 1. 1 (JAX-RPC), JAX-WS, упрощает задачу разработки веб-служб с помощью технологии Java. В нем разрешены некоторые проблемы JAX-RPC 1. 1 и обеспечивается поддержка нескольких протоколов, например, SOAP 1. 1, SOAP 1. 2, XML, а также возможность поддержки дополнительных протоколов наряду с HTTP. JAX-WS использует JAXB 2. 0 для привязки данных и поддерживает настройку для управления интерфейсами создаваемых конечных точек служб. Поддержка аннотаций в JAX-WS упрощает разработку веб-служб и уменьшает размер архивов JAR. Содержание ¡ ¡ ¡ ¡ Создание веб-службы Проектирование веб-службы Развертывание и тестирование веб-службы Использование веб-службы в в классе Java в приложении для Java SE в сервлете в веб-приложении на странице JSP в веб-приложении
Создание веб-службы Цель этого упражнения состоит в создании проекта в соответствии с используемым контейнером развертывания. После создания проекта будет создана веб-служба. Выбор контейнера Веб-служба может быть развернута в веб-контейнере или в контейнере EJB. Это зависит от конкретной реализации. Например, если развертывание планируется на веб-сервере Tomcat, предоставляющем только веб-контейнер, следует создавать веб-приложение, а не модуль EJB. Выберите "File > New Project" (Ctrl-Shift-N). Выберите "Web Application" в категории "Web" или "EJB Module" в категории "Enterprise". Присвойте проекту имя Calculator. WSApplication. В зависимости от используемого сервера развертывания, выполните следующее: При использовании Glass. Fish выберите "Java EE 5" в поле "Java EE Version". При использовании веб-сервера Tomcat удалите флажок "Set Source Level to 1. 4". Перейдите по остальным страницам и нажмите кнопку "Finish".
Создание веб-службы из класса Java Щелкните правой кнопкой мыши узел Calculator. WSApplication и выберите "New > Web Service". Присвойте веб-службе имя Calculator. WS, введите org. me. calculator в поле "Package" и нажмите кнопку "Finish". В окне "Projects" отображается структура новой веб-службы, а в области изменения отображается Visual Designer. Например, для вебприложений экран должен выглядеть следующим образом:
Проектирование веб-службы Целью этого упражнения является выполнение важных операций с файлами и кодом, созданными в среде IDE. Далее будет выполнена операция сложения двух чисел, полученных от клиента. Добавление бизнес-логики к веб-службе Нажмите кнопку "Add Operation" в Visual Designer. Появится диалоговое окно, в котором можно определить новую операцию. В верхней части диалогового окна "Add Operation" введите add в поле "Name" и int в раскрывающемся списке "Return Type". В нижней части диалогового окна "Add Operation" нажмите кнопку "Add" и создайте параметр типа int с именем i. Далее нажмите кнопку "Add" еще раз и создайте параметр типа int с именем j. Экран должен выглядеть следующим образом:
Экран
Visual Designer Нажмите кнопку "OK" в нижней части диалогового окна "Add Operation". Теперь в Visual Designer отображается следующее:
исходный код Нажмите кнопку "Source" и обратите внимание, что созданный выше исходный код теперь выглядит следующим образом:
Операция add В редакторе расширьте скелетную операцию add следующим образом: @Web. Method public int add(@Web. Param(name = "i") int i, @Web. Param(name = "j") int j) { int k = i + j; return k; } Как видно из кода, веб-служба просто получает два числа и затем возвращает их сумму.
Тестирование веб-службы в среде IDE При развертывании веб-службы в веб-контейнере ее можно протестировать для проверки правильности функционирования. Для этого в среду IDE интегрировано приложение "Tester", предоставляемое Glass. Fish. Аналогичное средство существует и для веб -сервера Tomcat. Однако при его использовании (в отличие от приложения Glass. Fish "Tester") ввод и тестирование значений невозможны. Можно только проверить, что выполнено развертывание веб-службы, но протестировать конкретные значения нельзя. Для тестирования развертывания в веб-контейнере: Щелкните правой кнопкой мыши проект и выберите "Run". Выполняется запуск сервера приложений, сборка приложения и открытие обозревателя. Разверните узел "Web Services", щелкните правой кнопкой мыши узел требуемой веб-службы и выберите "Test Web Service". Если веб-приложение было развернуто на Glass. Fish, в обозревателе откроется страница тестирования. Иначе при использовании вебсервера Tomcat и развертывании модулей EJB: Если развертывание выполнялось на Glass. Fish, введите на странице тестирования два числа, как показано ниже:
Форма
Форма
Тестирование Щелкните правой кнопкой мыши узел проекта, выберите "Properties" и нажмите кнопку "Run". В зависимости от используемого сервера развертывания, выполните следующее: Для Glass. Fish введите /Calculator. WSService? Tester в поле "Relative URL". Для веб-сервера Tomcat введите /Calculator. WS? Tester в поле "Relative URL"
Использование веб-службы После успешного развертывания веб-службы необходимо создать клиент для использования метода веб-службы add. Ниже будет рассмотрено создание клиентов: класса Java в приложении для Java SE, сервлета и страницы JSP в вебприложении. Клиент 1: класс Java в приложении для Java SE В этом разделе будет рассмотрено создание стандартного приложения на Java. Мастер, используемый для создания приложения, создает также класс Java. Затем вебслужба, созданная в начале этого руководства, будет использоваться при помощи средств среды IDE. Выберите "File > New Project" (Ctrl-Shift-N). Выберите "Java Application" в категории "Java". Присвойте проекту имя Calculator. WS_Client_Application. Не снимайте флажок "Create Main Class" и оставьте все прочие значения по умолчанию. Нажмите кнопку "Finish". При использовании IDE Net. Beans 6. 0. x следует изменить свойства проекта Calculator. WS_Client_Application. Щелкните правой кнопкой мыши узел проекта и выберите "Properties". Откроется диалоговое окно "Project Properties". Следующее действие зависит от используемого JDK: С более ранним JDK, чем JDK 6 Update 4, следует выбрать категорию "Libraries" и импортировать библиотеки JAX-WS и JAXB. С JDK 6 Update 4 или выше следует выбрать категорию "Run" и удалить "VM Option". Щелкните правой кнопкой мыши узел Calculator. WS_Client_Application и выберите "New > Web Service Client". В окне "Project" нажмите кнопку "Browse". Перейдите к веб-службе, которую необходимо использовать. Выберите веб-службу и нажмите кнопку "OK". Оставьте остальные параметры настройки по умолчанию (в 6. 0. x не указывайте имя пакета) и нажмите кнопку "Finish". В окне "Projects" появится новый клиент веб-службы с узлом для созданного метода add:
Окно "Projects"
Код метода Дважды щелкните элемент Main. java для его открытия в редакторе исходного кода. Удалите комментарий TODO и перетащите узел add выше в пустую строку. Экран должен выглядеть следующим образом: public static void main(String[] args) { try { // Call Web Service Operation org. me. calculator. Calculator. WSService service = new org. me. calculator. Calculator. WSService(); org. me. calculator. Calculator. WS port = service. get. Calculator. WSPort(); // TODO initialize WS operation arguments here int i = 3; int j = 4; // TODO process result here int result = port. add(i, j); System. out. println("Result = "+result); } catch (Exception ex) { // TODO handle custom exceptions here } } Примечание: Вместо перемещения узла add можно щелкнуть правой кнопкой мыши в редакторе и затем выбрать "Web Service Client Resources > Call Web Service Operation". Щелкните правой кнопкой мыши узел проекта и выберите "Run". Теперь в окне "Output" должна отобразиться сумма: compile: run: Result = 7 BUILD SUCCESSFUL (total time: 1 second)
Клиент 2: сервлет в веб-приложении В этом разделе будет рассмотрено создание нового веб-приложения и последующее создание сервлета. Затем этим сервлетом будет использоваться веб-служба, созданная в начале этого руководства. Выберите "File > New Project" (Ctrl-Shift-N). Выберите "Web Application" в категории "Web". Присвойте проекту имя Calculator. WSServlet. Client. Нажмите кнопку "Finish". Щелкните правой кнопкой мыши узел Calculator. WSServlet. Client и выберите "New > Web Service Client". Появится мастер "New Web Service Client". В окне "Project" нажмите кнопку "Browse". Перейдите к веб-службе, которую необходимо использовать. Выберите веб-службу и нажмите кнопку "OK". Оставьте остальные параметры настройки по умолчанию (в 6. 0. x не указывайте имя пакета) и нажмите кнопку "Finish". Узел "Web Service References" в окне "Projects" отражает структуру созданного клиента, включая операцию add, рассмотренную выше в этом руководстве: Щелкните правой кнопкой мыши узел проекта Calculator. WSServlet. Client и выберите "New > Servlet". Присвойте сервлету имя Client. Servlet и поместите его в пакет с именем org. me. calculator. client. Нажмите кнопку "Finish". Чтобы сделать сервлет точкой входа приложения, щелкните правой кнопкой мыши узел проекта, выберите "Properties", нажмите кнопку "Run" и введите /Client. Servlet в поле "Relative URL". Нажмите кнопку "OK".
Метод process. Request В редакторе исходного кода удалите строку с комментарием в теле метода process. Request. Строка имеет следующий вид: /* TODO output your page here Затем удалите строку, которой заканчивается раздел закомментированного кода: */ После этой строки добавьте несколько пустых: out. println("<h 1>Servlet Client. Servlet at " + request. get. Context. Path () + "</h 1>"); Теперь переместите на образовавшееся место узел, представляющий операцию add. Теперь метод process. Request выглядит следующим образом (добавленный код выделен ниже полужирным шрифтом):
process. Request protected void process. Request(Http. Servlet. Request request, Http. Servlet. Response response) throws Servlet. Exception, IOException { response. set. Content. Type("text/html; charset=UTF-8"); Print. Writer out = response. get. Writer(); out. println("<html>"); out. println("<head>"); out. println("<title>Servlet Client. Servlet</title>"); out. println("</head>"); out. println("<body>"); out. println("<h 1>Servlet Client. Servlet at " + request. get. Context. Path () + "</h 1>"); try { // Call Web Service Operation org. me. calculator. Calculator. WS port = service. get. Calculator. WSPort(); // TODO initialize WS operation arguments here int i = 0; int j = 0; // TODO process result here int result = port. add(i, j); out. println("Result = "+result); } catch (Exception ex) { // TODO handle custom exceptions here } out. println("</body>"); out. println("</html>"); out. close(); }
Проверка результата Измените значение i и j на положительные значимые числа, например, на 3 и 4. Щелкните правой кнопкой мыши узел проекта и выберите "Run". Запускается сервер (если он не был запущен ранее); после сборки и развертывания приложения открывается обозреватель, в котором отображается результат вычисления, как показано ниже:
Результат
Java_26_1.ppt