Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Пример веб-сервиса: helloservice

В этом примере демонстрируется простой веб-сервис, который генерирует ответ на основе информации, полученной от клиента. HelloServiceBean — это сессионный компонент без сохранения состояния, который реализует единственный метод sayHello. Этот метод соответствует методу sayHello, вызываемому клиентом, описанным в Простом клиентском приложении JAX-WS.

Здесь рассматриваются следующие темы:

Класс реализации конечной точки веб-сервиса

HelloServiceBean — это класс реализации конечной точки, обычно основной программный артефакт для конечных точек веб-сервиса Enterprise-бина. Класс реализации конечной точки веб-сервиса имеет следующие требования.

  • Класс должен быть аннотирован с помощью javax.jws.WebService или javax.jws.WebServiceProvider.

  • Реализующий класс может явно ссылаться на SEI через элемент endpointInterface аннотации @WebService, но не обязательно. Если endpointInterface не указан в @WebService, SEI неявно определяется для реализующего класса.

  • Бизнес-методы реализующего класса должны быть публичными и не должны объявляться static или final.

  • Бизнес-методы, предоставляемые клиентам веб-сервисов, должны быть аннотированы javax.jws.WebMethod.

  • Бизнес-методы, предоставляемые клиентам веб-сервисов, должны иметь JAXB-совместимые параметры и типы возвращаемых данных. См. Список привязок типов данных JAXB по умолчанию в Типы, поддерживаемые JAX-WS.

  • Реализующий класс не должен быть объявлен final и не должен быть abstract.

  • Реализующий класс должен иметь публичный конструктор по умолчанию.

  • Класс конечной точки должен быть аннотирован @Stateless.

  • Реализующий класс не должен определять метод finalize.

  • Реализующий класс может использовать аннотации javax.annotation.PostConstruct или javax.annotation.PreDestroy в своих Callback-методах жизненного цикла.

    Метод @PostConstruct вызывается контейнером до того, как реализующий класс начинает отвечать клиентам веб-сервиса.

    Метод @PreDestroy вызывается контейнером перед удалением конечной точки.

Класс реализации сессионного компонента без сохранения состояния

Класс HelloServiceBean реализует метод sayHello, который аннотируется @WebMethod. Исходный код для класса HelloServiceBean выглядит следующим образом:

package javaeetutorial.helloservice.ejb;

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;

@Stateless
@WebService
public class HelloServiceBean {
    private final String message = "Hello, ";

    public void HelloServiceBean() {}

    @WebMethod
    public String sayHello(String name) {
        return message + name + ".";
    }
}

Запуск helloservice

Вы можете использовать IDE NetBeans или Maven для сборки, упаковки и развёртывания примера helloservice. Затем вы можете использовать Консоль администрирования для тестирования методов конечной точки веб-сервиса.

Здесь рассматриваются следующие темы:

Сборка, упаковка и развёртывание helloservice с использованием IDE NetBeans

  1. Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).

  2. В меню «Файл» выберите «Открыть проект».

  3. В диалоговом окне «Открыть проект» перейдите к:

    tut-install/examples/ejb
  4. Выберите каталог helloservice.

  5. Нажмите Открыть проект.

  6. На вкладке «Проекты» кликните правой кнопкой мыши проект helloservice и выберите «Сборка».

    Это создаёт и упаковывает приложение в helloservice.ear, расположенный в tut-install/examples/ejb/helloservice/target/, и развёртывает этот EAR-файл на сервер GlassFish.

Сборка, упаковка и развёртывание helloservice с использованием Maven

  1. Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).

  2. В окне терминала перейдите в:

    tut-install/examples/ejb/helloservice/
  3. Введите следующую команду:

    mvn install

    Это скомпилирует исходные файлы и упакует приложение в файл EJB JAR helloservice.jar, расположенный в каталоге tut-install/examples/ejb/helloservice/target/. Затем файл EJB JAR развёртывается на сервере GlassFish.

    После развёртывания сервер GlassFish создаёт дополнительные артефакты, необходимые для вызова веб-сервиса, включая файл WSDL.

Тестирование сервиса без клиента

Консоль администрирования сервера GlassFish позволяет тестировать методы конечной точки веб-сервиса. Чтобы проверить метод sayHello у HelloServiceBean, выполните следующие действия.

  1. Откройте Консоль администрирования, открыв следующий URL в веб-браузере:

    http://localhost:4848/
  2. В дереве навигации выберите узел Приложения.

  3. В таблице «Приложения» нажмите ссылку helloservice.

  4. В таблице «Модули и компоненты» кликните ссылку «Просмотр конечной точки».

  5. На странице Информация о конечной точке веб-сервиса нажмите ссылку Тестер:

    /HelloServiceBeanService/HelloServiceBean?Tester
  6. На странице тестовых ссылок веб-сервиса кликните незащищённую ссылку (ту, которая указывает порт 8080).

  7. На странице тестера веб-сервиса HelloServiceBeanService в разделе Методы введите имя в качестве параметра метода sayHello.

  8. Нажмите sayHello.

    Откроется страница вызова метода sayHello. В разделе Method returned вы увидите ответ от конечной точки.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)