// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Начало работы с веб-службами JAX-WS
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Начало работы с веб-службами JAX-WS - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Начало работы с веб-службами JAX-WS

link:http://www.jcp.org/en/jsr/detail?id=224[+API -интерфейс Java для веб-служб XML (JAX-WS), JSR 224+], является важным компонентом платформы Java EE. Следующий выпуск интерфейса 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.

В этом документе рассматриваются основные принципы использования среды IDE для разработки веб-службы JAX-WS. После создания веб-службы будут написаны три разных клиента веб-служб, использующие веб-службу по сети, т.е. "потребляющие" веб-службу. Этими тремя клиентами будут класс Java в приложении для Java SE, сервлет и страница JSP в веб-приложении. Более подробно работа с клиентами освещена в учебном курсе link:./client.html[+Разработка клиентов веб-служб JAX-WS+].


image::images/netbeans-stamp-80-74-73.png[title="Содержимое этой страницы применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0"]

* Использование веб-службы

*Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.*

|===
|Программное обеспечение или материал |Требуемая версия 

|link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |Пакетная загрузка Java EE 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |JDK 7 или JDK 8
 

|Веб-сервер или сервер приложений, совместимый с Java EE |GlassFish Server Open Source Edition
Oracle WebLogic Server 
|===

*Примечание. *Сервер GlassFish можно установить вместе с дистрибутивом Java EE среды IDE NetBeans. Также можно воспользоваться link:https://glassfish.java.net/download.html[+страницей загрузок GlassFish Server+] или link:http://tomcat.apache.org/download-60.cgi[+страницей загрузок Apache Tomcat+].

*Важно! *Для проектов Java EE требуется GlassFish Server или Oracle WebLogic Server 12c.

Включенный в комплект веб-сервер Tomcat лишь частично совместим с Java EE Однако веб-сервер Tomcat 7.x можно настроить так, чтобы он поддерживал определенную функциональность Java EE. Дополнительные сведения о добавлении поддержки Java EE в Tomcat см. в разделе link:http://openejb.apache.org/[+Проект Apache TomEE+].


==   Создание веб-службы

Цель этого упражнения состоит в создании проекта в соответствии с используемым контейнером развертывания. После создания проекта будет создана веб-служба.


=== Выбор контейнера

Веб-служба может быть развернута в веб-контейнере или в контейнере EJB. Это зависит от конкретной реализации. При создании приложения Java EE всегда используйте веб-контейнер, так как это позволяет поместить компоненты EJB непосредственно в веб-приложение. Например, если развертывание планируется на веб-сервере Tomcat, предоставляющем только веб-контейнер, следует создавать веб-приложение, а не модуль EJB.

1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). Выберите "Веб-приложение" из категории "Java Web" или "Модуль EJB" из категории "Java EE".

Веб-службу JAX-WS можно создать в проекте Maven. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Linux и Windows, ⌘-Shift-N ы MacOS), а затем веб-приложение Maven или модуль Maven EJB в категории Maven. Если ранее вы не использовали Maven со средой NetBeans, ознакомьтесь с документом link:http://wiki.netbeans.org/MavenBestPractices[+Maven Best Practices+] (Рекомендации по Maven).


[start=2]
. Дайте проекту имя  ``CalculatorWSApplication`` . Выберите местоположение для проекта. Нажмите кнопку "Далее".

[start=3]
. Выберите свой сервер и версию Java EE и щелкните "Готово".

Для использования сервера Oracle WebLogic link:../web/jsf-jpa-weblogic.html#01[+зарегистрируйте сервер с помощью среды IDE+]. Кроме этого, если вы используете сервер WebLogic, просмотрите экранную демонстрацию link:../javaee/weblogic-javaee-m1-screencast.html[+Deploying a Web Application to Oracle WebLogic+] (Развертывание веб-приложения на Oracle WebLogic).


=== Создание веб-службы из класса Java

1. Щелкните правой кнопкой мыши узел  ``CalculatorWSApplication``  и выберите "Создать > Веб-служба".
2. Присвойте веб-службе имя  ``CalculatorWS``  и введите  ``org.me.calculator``  в поле "Пакет". Оставьте установленной кнопку-переключатель "Создать веб-службу с нуля".
3. При создании проекта Java EE на сервере GlassFish или WebLogic выберите 'Реализовать веб-службу' в качестве компонента сеанса без сохранения состояния. 
image::images/generate-ws-ee6.png[]

[start=4]
. Нажмите кнопку 'Готово'. В окне "Проекты" отображается структура новой веб-службы, а в области редактора отображается исходный код.


==   Добавление операции к веб-службам

Целью этого упражнения является добавление к веб-службам операции, выполняющей сложение двух чисел, полученных от клиента. IDE NetBeans обеспечивает диалоговое окно для добавления операции с веб-службой. Это диалоговое окно можно открыть либо в визуальном конструкторе, либо в контекстном меню веб-службы.

*Внимание!* В проектах Maven визуальный конструктор недоступен.

*Для добавления операции в веб-службу выполните следующие действия.*

1. Либо
* измените представление "Конструктор" в окне редактора. 
image::images/design-view.png[]

Либо

* Найдите узел веб-службы в окне "Проекты". Щелкните узел правой кнопкой мыши. Откроется контекстное меню. 
image::images/add-op-cx-menu-item.png[]

[start=2]
. Щелкните "Добавить операцию" либо в визуальном конструкторе, либо в контекстном меню. Откроется диалоговое окно "Добавление операции".

[start=3]
. В верхней части диалогового окна "Добавить операцию" введите  ``add``  в 'Имя' и введите  ``int``  в раскрывающийся список "Тип возвращаемого значения".

[start=4]
. В нижней части диалогового окна "Добавить операцию" нажмите кнопку "Добавить" и создайте параметр типа  ``int``  с именем  ``i`` .

[start=5]
. Снова щелкните "Добавить" и создайте параметр типа  ``int``  с именем  ``j`` .

На экране должны быть представлены следующие параметры:


image::images/jaxws-60-add-operation.png[]

[start=6]
. Нажмите кнопку "ОК" в нижней части диалогового окна "Добавить операцию". Вы вернетесь в редактор.

[start=7]
. Удалите операцию по умолчанию  ``hello`` . Для этого либо удалите метод  ``hello()``  в исходном коде, либо выберите операцию  ``hello``  в визуальном конструкторе и щелкните "Удалить операцию".

Теперь в Visual Designer отображается следующее:


image::images/design-view-with-op.png[title="В Visual Designer веб-службы отображается добавленная операция"]

[start=8]
. Нажмите кнопку "Исходный код" и посмотрите на код, созданный в результате предыдущих действий. Он будет различаться в зависимости от того, как создана служба: в качестве компонента Java EE без сохранения состояния или обычным способом. Обратите внимание на разницу в снимках экрана ниже: (Служба Java EE 6 или Java EE 7, не реализованная в качестве компонента без сохранения состояния, похожа на службу Java EE 5.)
image::images/jaxws-60-source.png[] image::images/stateless-ejb-code1.png[]

*Примечание.* При работе в IDE NetBeans 7.3 и 7.4 вы увидите, что в созданной аннотации  ``@WebService``  имя службы указано явно:
 ``@WebService(serviceName = "CalculatorWS")`` .


[start=9]
. В редакторе расширьте схему операции  ``add``  следующим образом (изменения выделены полужирным шрифтом):

[source,java]
----

    @WebMethod
    public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
        *int k = i + j;*
        return *k*;
      }
----

Как видно из указанного кода, веб-служба просто получает два числа и затем возвращает их сумму. В следующем разделе рассматривается тестирование веб-службы в среде IDE.


== Развертывание и тестирование веб-службы

После развертывания веб-службы на сервере можно использовать среду IDE для открытия клиента тестирования сервера, если у сервера имеется такой клиент. Серверы GlassFish и WebLogic предоставляют тестовые клиенты.

Если используется веб-сервер Tomcat, клиент тестирования отсутствует. Вы можете только запустить проект и проверить, открывается ли страница веб-служб Tomcat. В этом случае, прежде чем запустить проект, необходимо сделать веб-службу точкой входа в приложение. Чтобы сделать веб-службу точкой входа в приложение щелкните правой кнопкой мыши узел проекта CalculatorWSApplication и выберите 'Свойства'. Откройте 'Свойства выполнения' и введите  ``/CalculatorWS``  в поле 'Относительный адрес'. Нажмите кнопку "ОК". Запустите приложение (повторно щелкните правой кнопкой мыши узел проекта и выберите 'Выполнить').

*Для проверки успешности развертывания на сервере GlassFish или WebLogic выполните следующие действия.*

1. Щелкните проект правой кнопкой мыши и выберите команду "Развернуть". Запускается сервер приложений, выполняется сборка и развертывание приложения на сервере приложений. За ходом выполнения этих операций можно наблюдать в приложении CalculatorWSApplication (запуск-развертывание) и на вкладках серверов GlassFish или Tomcat в окне вывода.
2. На вкладке "Проекты IDE" разверните узел "Веб-службы" проекта "CalculatorWSApplication". Щелкните правой кнопкой мыши узел "CalculatorWS" и выберите "Тестировать веб-службу". 
image::images/jax-ws-testws.png[]

Страница тестирования открывается в браузере, если веб-приложение развернуто на сервере GlassFish. В случае использования веб-сервера Tomcat и развертывания модулей EJB ситуация отличается:

* Если развертывание выполнялось на GlassFish, введите на странице тестирования два числа, как показано ниже: 
image::images/jax-ws-tester.png[]

Отображается сумма этих двух чисел:


image::images/jax-ws-tester2.png[]


== [[Примеры]] 

Можно открыть полную версию компонента сеанса Java EE без сохранения состояния службы Calculator. Для этого выберите Файл > Создать проект (Ctrl-Shift-N в Linux и Windows, ⌘ + Shift + N в MacOS) и перейдите в раздел Образцы > Веб-службы Java > Calculator (EE6).

Служба и клиент калькулятора Maven доступны в пункте "Примеры > Maven".


== Использование веб-службы

После успешного развертывания веб-службы необходимо создать клиент для использования метода веб-службы  ``add`` . Ниже будет рассмотрено создание трех клиентов: класса Java в приложении для Java SE, сервлета и страницы JSP в веб-приложении.

*Примечание.* Более расширенный учебный курс сосредоточен на клиентах: link:../../../kb/docs/websvc/client.html[+Разработка клиентов веб-служб JAX-WS+].


=== Клиент 1: класс Java в приложении для Java SE

В этом разделе будет рассмотрено создание стандартного приложения Java. Мастер, используемый для создания приложения, также создает и класс Java. Затем средства среды IDE будут использоваться для создания клиента и использования веб-службы, созданной в начале этого руководства.

1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). Выберите "Приложение Java" в категории "Java". Присвойте проекту имя  ``CalculatorWS_Client_Application`` . Не снимайте флажок "Создать главный класс" и оставьте все прочие значения по умолчанию. Нажмите кнопку 'Готово'.
2. Щелкните правой кнопкой мыши узел  ``CalculatorWS_Client_Application``  и выберите "Создать > Клиент веб-службы". Появится мастер создания клиента веб-службы.
3. Выберите проект в виде исходного файла WSDL. Нажмите кнопку "Обзор". В проекте CalculatorWSApplication перейдите к веб-службе CalculatorWS. Выберите веб-службу и нажмите кнопку "ОК".
image::images/browse-ws.png[]

[start=4]
. Не выбирайте имя пакета. Оставьте это поле пустым.
image::images/javaclient-pkg.png[]

[start=5]
. Оставьте значения остальных параметров по умолчанию и нажмите кнопку "Готово".

В окне "Проекты" появится новый клиент веб-службы с узлом для созданного метода ``add`` :


image::images/ws-ref-in-client-project.png[]

[start=6]
. Дважды щелкните главный класс, чтобы открыть его в редакторе исходного кода. Перетащите узел  ``add``  в местоположение ниже метода  ``main()`` .
image::images/dnd-add.png[]

На экране должны быть представлены следующие параметры:


[source,java]
----

public static void main(String[] args) {
    // TODO code application logic here
}
private static int add(int i, int j) {
    org.me.calculator.CalculatorWS_Service service = new org.me.calculator.CalculatorWS_Service();
    org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
    return port.add(i, j);
}
----

*Примечание.* В качестве альтернативы, вместо перетаскивания узла  ``add``  можно щелкнуть правой кнопкой мыши в редакторе, а затем выбрать 'Вставить код' > 'Dspdfnm операцию с веб-службой'.


[start=7]
. В теле метода  ``main()``  замените комментарий TODO кодом, который инициализирует значения для  ``i``  и  ``j`` , вызывает  ``add()``  и распечатывает результат.

[source,java]
----

public static void main(String[] args) {int i = 3;int j = 4;int result = add(i, j);System.out.println("Result = " + result);
}
----

[start=8]
. Окружите код метода  ``main()``  блоком try/catch, который распечатывает исключение.

[source,java]
----

public static void main(String[] args) {try {int i = 3;int j = 4;int result = add(i, j);System.out.println("Result = " + result);} catch (Exception ex) {System.out.println("Exception: " + ex);}
}
----

[start=9]
. Щелкните правой кнопкой мыши узел проекта и выберите "Выполнить".

Теперь в окне "Вывод" отображается сумма:


[source,java]
----

    compile:
    run:
    Result = 7
      BUILD SUCCESSFUL (total time: 1 second)
----


=== Клиент 2: сервлет в веб-приложении

В этом разделе будет рассмотрено создание нового веб-приложения и последующее создание сервлета. Затем этим сервлетом будет использоваться веб-служба, созданная в начале данного учебного курса.

1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). Выберите "Веб-приложение" в категории "Java Web". Дайте проекту имя  ``CalculatorWSServletClient`` . Нажмите кнопку "Далее", а затем нажмите кнопку "Готово".
2. Щелкните правой кнопкой мыши узел  ``CalculatorWSServletClient``  и выберите "Создать > Клиент веб-службы".

Появится мастер создания клиента веб-службы.


[start=3]
. В качестве источника WSDL выберите "Проект" и нажмите кнопку "Обзор", чтобы открыть диалоговое окно "Обзор веб-служб".

[start=4]
. В проекте CalculatorWSApplication выберите веб-службу CalculatorWS. Нажмите кнопку OK, чтобы закрыть диалоговое окно "Обзор веб-служб".
image::images/browse-ws.png[]

[start=5]
. Оставьте поле "Имя пакета" в мастере создания клиентов веб-службы пустым и не меняйте значения всех остальных параметров, заданные по умолчанию. Нажмите "Готово".

Узел "Ссылки на веб-службу" в окне "Проекты" отражает структуру только что созданного клиента, включая операцию  ``add`` , рассмотренную ранее в этом учебном курсе.


[start=6]
. Щелкните правой кнопкой мыши узел проекта  ``CalculatorWSServletClient``  и выберите "Создать > Сервлет". Дайте сервлету имя  ``ClientServlet``  и поместите его в пакет с именем  ``org.me.calculator.client`` . Нажмите кнопку 'Готово'.

[start=7]
. Чтобы сделать сервлет точкой ввода в приложении щелкните правой кнопкой мыши узел проекта CalculatorWSServletClient и выберите 'Свойства'. Откройте "Свойства выполнения" и введите  ``/ClientServlet``  в поле "Относительный адрес". Нажмите кнопку "ОК".

[start=8]
. При наличии значков ошибок для  ``ClientServlet.java``  щелкните правой кнопкой мыши узел проекта и выберите 'Очистка и сборка'.

[start=9]
. В методе  ``processRequest()``  добавьте несколько пустых строк после следующей строки:

[source,xml]
----

    out.println("<h1>Servlet ClientServlet at " + request.getContextPath () + "</h1>");
----

[start=10]
. В редакторе исходного кода перетащите операцию  ``add``  в любое место тела класса  ``ClientServlet`` . Метод  ``add()``  отображается в конце кода класса.

*Примечание.* В качестве альтернативы, вместо перетаскивания узла  ``add``  можно щелкнуть правой кнопкой мыши в редакторе, а затем выбрать 'Вставить код' > 'Dspdfnm операцию с веб-службой'.


[source,java]
----

private int add(int i, int j) {org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();return port.add(i, j);
}
----

[start=11]
. Добавьте код, который инициализирует значения для  ``i``  и  ``j`` , вызывает  ``add()``  и распечатывает результат. Добавленный код выделяется *полужирным начертанием*:

[source,xml]
----

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet ClientServlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet ClientServlet at " + request.getContextPath () + "</h1>");

    *    int i = 3;
int j = 4;
int result = add(i, j);
out.println("Result = " + result);*

        out.println("</body>");
        out.println("</html>");
        
    } finally {            out.close();}}
----

[start=12]
. Окружите добавленный код блоком try/catch, который распечатывает исключение.

[source,xml]
----

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet ClientServlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet ClientServlet at " + request.getContextPath () + "</h1>");
        *try {*
            int i = 3;int j = 4;int result = add(i, j);out.println("Result = " + result);
        *} catch (Exception ex) {
            out.println("Exception: " + ex);
        }*
        out.println("</body>");
        out.println("</html>");
        
    } finally {            out.close();}}
----

[start=13]
. Щелкните правой кнопкой мыши узел проекта и выберите "Выполнить".

Запускается сервер, выполняются сборка и развертывание приложения, и открывается браузер, в котором отображается результат вычисления, как показано ниже: 
image::images/jaxws-60-webclient.png[]


=== Клиент 3: страница JSP в веб-приложении

В этом разделе описана процедура создания нового веб-приложения и использование веб-службы на странице JSP по умолчанию, созданной с помощью мастера "Веб-приложение".

*Примечание.* Если необходимо запустить клиент веб-приложения JSP в Oracle WebLogic см. link:../web/jsf-jpa-weblogic.html[+Запуск приложения Java Server Faces 2.0 в WebLogic+].

1. Выберите 'Файл' > 'Создать проект' (Ctrl-Shift-N в Windows и Linux, ⌘-Shift-N в ОС Mac). Выберите "Веб-приложение" в категории "Java Web". Дайте проекту имя  ``CalculatorWSJSPClient`` . Нажмите кнопку "Далее", а затем нажмите кнопку "Готово".
2. Раскройте узел "Веб-страницы" под узлом проекта и удалите файл  ``index.html`` .
3. Щелкните правой кнопкой мыши узел  ``Веб-страницы``  и выберите пункт меню "Создать > JSP".

Если в меню отсутствует пункт "JSP", выберите "Создать > Другие", затем выберите JSP в категории "Веб" мастера создания файлов.


[start=4]
. В качестве имени файла JSP в мастере создания файлов укажите *index*. Нажмите "Готово".

[start=5]
. Щелкните правой кнопкой мыши узел  ``CalculatorWSJSPClient``  и выберите "Создать > Клиент веб-службы".

[start=6]
. Выберите проект в виде исходного файла WSDL. Нажмите кнопку "Обзор". В проекте CalculatorWSApplication перейдите к веб-службе CalculatorWS. Выберите веб-службу и нажмите кнопку "ОК".
image::images/browse-ws.png[]

[start=7]
. Не выбирайте имя пакета. Оставьте это поле пустым.

[start=8]
. Оставьте значения остальных параметров по умолчанию и нажмите кнопку "Готово".

В окне "Проекты" появится новый клиент веб-службы, как показано ниже:

image::images/ws-ref-in-jsp-client.png[]

[start=9]
. В узле "Ссылки на веб-службы" разверните узел, соответствующий веб-службе. Теперь показана операция  ``add`` , которую требуется вызывать посредством клиента.

[start=10]
. Перетащите операцию  ``add``  на страницу клиента  ``index.jsp``  ниже тегов H1. Теперь на странице  ``index.jsp``  отображается код для вызова операции службы, показанный ниже:

[source,java]
----

<%
try {
    org.me.calculator.CalculatorWSService service = new org.me.calculator.CalculatorWSService();
    org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
     // 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
}
%>
----

Измените значения для  ``i``  и  ``j``  с 0 на другие целые числа, например, на 3 и 4. В блоке "catch" замените закомментированную строчку "TODO" на  ``out.println("exception" + ex);`` .


[start=11]
. Щелкните правой кнопкой мыши узел проекта и выберите "Выполнить".

Запускается сервер, если он не был запущен ранее. После сборки и развертывания приложения открывается браузер, в котором отображается результат вычисления:

image::images/jax-ws-project-jsp-result.png[]


link:/about/contact_form.html?to=3&subject=Feedback:%20JAX-WS%20Services%20in%20NetBeans%20IDE[+Отправить отзыв по этому учебному курсу+]



== Дополнительные сведения

Подробнее об использовании IDE NetBeans для разработки приложений Java EE см. в следующих ресурсах:

* link:./client.html[+Разработка клиентов веб-служб JAX-WS+]
* link:./rest.html[+Начало работы с веб-службами RESTful+]
* link:./wsit.html[+Расширенные возможности взаимодействия веб-служб+]
* link:../../../kb/trails/web.html[+Учебная карта по веб-службам+]

Для отправки комментариев и предложений, получения поддержки и новостей о последних разработках, связанных с Java EE IDE NetBeans link:../../../community/lists/top.html[+присоединяйтесь к списку рассылки nbj2ee@netbeans.org+].

