corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Начало работы с веб-службами RESTful на сервере GlassFish

REpresentational State Transfer (REST) представляет собой архитектурный стиль для распределенных систем гиперданных, например, World Wide Web. В основе архитектуры RESTful лежит принцип определения ресурсов по универсальным идентификаторам ресурсов (Universal Resource Identifiers, URI). Управление этими ресурсами можно осуществлять с помощью стандартного интерфейса, например, HTTP, а обмен информацией происходит с помощью представлений этих ресурсов. В этом руководстве рассматриваются службы REST и поддержка этого архитектурного стиля в среде IDE NetBeans 6.0.

Примечание: Это руководство составлено специально для сервера приложений GlassFish v2. Если требуется разрабатывать службы RESTful на веб-сервере Tomcat, см. руководство Начало работы с веб-службами RESTful на сервере Tomcat.

Содержание

Содержимое на этой странице относится к среде IDE NetBeans 6.0

Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные ниже.

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans Web & Java EE, версия 6.0
Комплект для разработчика на языке Java (JDK) версия 6 или
версия 5
Сервер приложений GlassFish v2 Версия v2

Сервер GlassFish может быть установлен при помощи дистрибутива "Web and Java EE" среды IDE NetBeans. Либо посетите страницу загрузок GlassFish.

Для работы с этим руководством также требуется подключаемый модуль "RESTful Web Services". В среде IDE перейдите в диспетчер подключаемых модулей в меню "Tools" и проверьте, установлен ли подключаемый модуль "RESTful Web Services", на вкладке "Installed". Если нет, установите его на вкладке "Available Plugins", как показано ниже:

RESTful в диспетчере подключаемых модулей

Введение

Веб-службы RESTful являются службами, созданными с помощью архитектурного стиля RESTful. Создание веб-служб с помощью подхода RESTful становится популярной альтернативой использованию технологий развертывания служб в Интернете на основе SOAP вследствие простоты применения и возможностей передачи данных непосредственно по HTTP.

Среда IDE поддерживает быструю разработку веб-служб RESTful с помощью JSR 311 – интерфейса API Java для веб-служб RESTful (JAX-РТС) и Jersey, демонстрационной реализации для JAX-РТС.

Для получения подробной информации см.:

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

Ниже показан список аспектов среды IDE для поддержки RESTful:

  1. Быстрое создание веб-служб RESTful из классов объектов JPA и шаблонов.
  2. быстрое автоматическое создание кода для вызова веб-служб, таких как Google Map, Yahoo News Search и StrikeIron, путем перетаскивания элементов из палитры элементов RESTful;
  3. создание клиентских заглушек JavaScript из веб-служб RESTful для создания клиентских приложений RESTful;
  4. создание тестовых клиентов для тестирования веб-служб RESTful;
  5. логическое представление для простых переходов по классам реализации веб-служб RESTful в проекте.

В этом руководстве описаны средства создания, реализации и тестирования веб-служб RESTful в среде IDE.

Создание классов объектов из базы данных

Целью этого упражнения является создание проекта и классов объектов из базы данных.

  1. Выберите "File > New Project". В области "Categories" выберите "Web". В области "Projects" выберите "Web Application" и нажмите кнопку "Next".
  2. В поле "Project Name" введите CustomerDB.
  3. В поле "Server" выберите GlassFish. Перейдите по остальным страницам и нажмите кнопку "Finish".
  4. Щелкните правой кнопкой мыши узел CustomerDB и выберите "New > Entity Classes from Database". Либо можно выбрать его из категории "Persistence" в мастере создания файлов (Ctrl-N).
  5. На экране "Database Tables" выберите источник данных jdbc/sample. В поле "Available Tables" выберите "CUSTOMER", а затем нажмите кнопку "Add". Таблица "DISCOUNT_CODE", связанная с таблицей "CUSTOMER", автоматически добавляется к списку "Selected Tables". Экран должен выглядеть следующим образом:
    Мастер "Entity Classes from Database" с выбранными таблицами

    Нажмите кнопку "Next".

  6. В поле "Package" введите customerdb. Экран должен выглядеть следующим образом:
    Мастер создания объектов 2
  7. Нажмите кнопку "Create Persistence Unit". Появится следующее диалоговое окно:
    Мастер создания объектов 2

    Нажмите кнопку "Create", а затем кнопку "Finish".

  8. Просмотрите окно "Projects". Экран должен выглядеть следующим образом:
    Окно "Projects" с новыми классами

Создание веб-служб RESTful из классов объектов

Целью этого упражнения является создание веб-служб RESTful из классов объектов, созданных в предыдущем разделе.

  1. Щелкните правой кнопкой мыши пакет, содержащий классы объектов, и выберите "New > RESTful Web Services from Entity Classes", как показано ниже:
    Выбор мастера создания служб RESTful
  2. В мастере создания веб-служб RESTful из классов объектов нажмите кнопку "Add All". Экран должен выглядеть следующим образом:
    Выбор классов объектов

    Нажмите кнопку "Next".

  3. На следующем экране оставьте значения по умолчанию.
    Созданные классы

    Здесь отображаются все элементы, созданные в среде IDE. Для создания классов ресурсов в среде IDE используется модель "элемент-контейнер". Например, для класса объектов "Customer" в среде IDE создается ресурс контейнера "CustomersResource" и ресурс элемента "CustomerResource". Кроме того, для каждого класса ресурсов в среде IDE создается класс преобразования, используемый для создания представления ресурса из соответствующего экземпляра объекта, например, "CustomersConverter" и "CustomerConverter". Кроме того, для представления взаимосвязей существует дополнительный класс преобразования, называемый ссылочным преобразованием, например, "CustomerRefConverter".

    Нажмите кнопку "Finish".

  4. Просмотрите окно "Projects". Экран должен выглядеть следующим образом:
    Окно "Projects" с созданными классами веб-службы RESTful
  5. Узел "RESTful Web Services" в окне "Projects" теперь содержит все веб-службы RESTful в проекте. Значение в квадратных скобках, например, [/customers/], является значением для шаблона URI. По исходному файлу также можно перемещаться путем двойного щелчка этого узла. Также на этом экране отображаются все методы HTTP и методы поиска подресурсов. Как и в предыдущем случае, перемещаться по методам можно путем двойного щелчка узлов.

Теперь, после создания классов объектов и веб-служб RESTful, можно перейти к тестированию приложения. В IDE имеется удобная служебная программа для тестирования веб-служб RESTful. Она будет использоваться в следующем разделе.

Тестирование веб-служб RESTful

Целью этого упражнения является тестирование созданного приложения.

  1. Щелкните правой кнопкой мыши узел проекта и выберите "Test RESTful Web Services", как показано ниже:
    Выбор пункта "Test RESTful Services" в окне "Projects"

    Выполняется запуск сервера и развертывание приложения. Наконец, обозреватель должен отобразить приложение со ссылкой на каждую из веб-служб:
    Средство тестирования веб-служб RESTful

  2. Слева расположен набор корневых ресурсов: customers и discountCodes.

  3. Сначала выберите корневой ресурс, например, customers. Щелкните раскрывающийся список "Methods" и выберите GET(application/xml) или GET(application/json). Нажмите кнопку "Test". Результат отображается в разделе "Test Output":
    Результат тестирования со списком клиентов
  4. В разделе "Test Output" расположены 4 вкладки. В окне "Tabular" расположено упрощенное представление со всеми идентификаторами URI в документе результата, к которому можно перейти при помощи ссылок. В окне "Raw" отображаются фактически возвращенные данные. В зависимости от выбранного типа MIME (application/xml или application/json), данные будут представлены в формате XML или JSON соответственно. В окне "Headers" отображается информация заголовка HTTP. Вкладка "HTTP Monitor" содержит фактические запросы HTTP и ответы (переданные и принятые).

  5. Закройте обозреватель и вернитесь в среду IDE.

Добавление компонента "Google Map"

Целью этого упражнения является добавление к веб-службам RESTful функциональных возможностей карт Google.

  1. Откройте в редакторе класс CustomerResource, как показано ниже. В меню "Tools" выберите "Palette". Обратите внимание, что справа от редактора появляется палитра с фрагментами кода:
    Класс "CustomerResource" в редакторе
  2. Подпишитесь для получения ключа карт Google по адресу http://www.google.com/apis/maps/signup.html. В диалоговом окне с запросом ключа для карт Google имеется поле для URL-адреса веб-сайта. В этом поле введите http://localhost:8080.
  3. Из категории "Google" перетащите элемент "Map" в любое местоположение в классе. Откроется окно "Customize GoogleMap". Введите ключ Google Map в поле "apiKey", как показано ниже:

    Диалоговое окно "Customize Google Map"
  4. Нажмите кнопку "OK".

    В среде IDE создается класс GoogleMapResource. Класс CustomerResource обращается к нему с помощью этого метода, который также создается средой IDE:

        /**
    * Возвращает подресурс "GoogleMapResource".
    */
    @Path("googleMap/")
    public GoogleMapResource getGoogleMap() {
    try {
    customer.db.tomcat.Customer entity = getEntity();
    String apiKey = null;
    String address = entity.getAddressline1();
    Integer zoom = null;
    return new GoogleMapResource(apiKey, address, zoom);
    } finally {
    PersistenceService.getInstance().close();
    }
    }
  5. Щелкните правой кнопкой мыши узел проекта и снова выберите "Test RESTful Web Services". После открытия обозревателя щелкните googleMap. На экране должно отображаться следующее (с введенным ключом apiKey):
    Тестирование с узлом "Google Map"
  6. Нажмите кнопку "Test". На вкладке "Raw View" откроется карта Google:

    Важно:В Firefox 2 тестовый клиент зависает при попытке представления изображения. Выберите URL-адрес http:.../googleMap/ в узле Resource:. Изображение карты появится в обозревателе на новой вкладке.


    Карта Google с адресом


Дополнительная информация

Для получения дополнительных сведений о разработке веб-служб RESTful в среде IDE NetBeans 6.0 см. следующие руководства:

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

Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems