Начало работы с веб-службами 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.
Сервер GlassFish может быть установлен при помощи дистрибутива "Web and Java EE" среды IDE NetBeans. Либо посетите страницу загрузок GlassFish.
Для работы с этим руководством также требуется подключаемый модуль "RESTful Web Services". В среде IDE перейдите в диспетчер подключаемых модулей в меню "Tools" и проверьте, установлен ли подключаемый модуль "RESTful Web Services", на вкладке "Installed". Если нет, установите его на вкладке "Available Plugins", как показано ниже:
Введение
Веб-службы RESTful являются службами, созданными с помощью архитектурного стиля RESTful. Создание веб-служб с помощью подхода RESTful становится популярной альтернативой использованию технологий развертывания служб в Интернете на основе SOAP вследствие простоты применения и возможностей передачи данных непосредственно по HTTP.
Среда IDE поддерживает быструю разработку веб-служб RESTful с помощью JSR 311 – интерфейса API Java для веб-служб RESTful (JAX-РТС) и Jersey, демонстрационной реализации для JAX-РТС.
Кроме создания веб-служб RESTful, среда IDE также поддерживает тестирование, создание клиентских приложений, получающих доступ к веб-службам RESTful, и автоматическое создание кода для вызова веб-служб (как RESTful, так и на основе SOAP).
Ниже показан список аспектов среды IDE для поддержки RESTful:
Быстрое создание веб-служб RESTful из классов объектов JPA и шаблонов.
быстрое автоматическое создание кода для вызова веб-служб, таких как Google Map, Yahoo News Search и StrikeIron, путем перетаскивания элементов из палитры элементов RESTful;
создание клиентских заглушек JavaScript из веб-служб RESTful для создания клиентских приложений RESTful;
создание тестовых клиентов для тестирования веб-служб RESTful;
логическое представление для простых переходов по классам реализации веб-служб RESTful в проекте.
В этом руководстве описаны средства создания, реализации и тестирования веб-служб RESTful в среде IDE.
Создание классов объектов из базы данных
Целью этого упражнения является создание проекта и классов объектов из базы данных.
Выберите "File > New Project". В области "Categories" выберите "Web". В области "Projects" выберите "Web Application" и нажмите кнопку "Next".
В поле "Project Name" введите CustomerDB.
В поле "Server" выберите GlassFish. Перейдите по остальным страницам и нажмите кнопку "Finish".
Щелкните правой кнопкой мыши узел CustomerDB и выберите "New > Entity Classes from Database". Либо можно выбрать его из категории "Persistence" в мастере создания файлов (Ctrl-N).
На экране "Database Tables" выберите источник данных jdbc/sample. В поле "Available Tables" выберите "CUSTOMER", а затем нажмите кнопку "Add". Таблица "DISCOUNT_CODE", связанная с таблицей "CUSTOMER", автоматически добавляется к списку "Selected Tables". Экран должен выглядеть следующим образом:
Нажмите кнопку "Next".
В поле "Package" введите customerdb. Экран должен выглядеть следующим образом:
Просмотрите окно "Projects". Экран должен выглядеть следующим образом:
Создание веб-служб RESTful из классов объектов
Целью этого упражнения является создание веб-служб RESTful из классов объектов, созданных в предыдущем разделе.
Щелкните правой кнопкой мыши пакет, содержащий классы объектов, и выберите "New > RESTful Web Services from Entity Classes", как показано ниже:
В мастере создания веб-служб RESTful из классов объектов нажмите кнопку "Add All". Экран должен выглядеть следующим образом:
Нажмите кнопку "Next".
На следующем экране оставьте значения по умолчанию.
Здесь отображаются все элементы, созданные в среде IDE. Для создания классов ресурсов в среде IDE используется модель "элемент-контейнер". Например, для класса объектов "Customer" в среде IDE создается ресурс контейнера "CustomersResource" и ресурс элемента "CustomerResource". Кроме того, для каждого класса ресурсов в среде IDE создается класс преобразования, используемый для создания представления ресурса из соответствующего экземпляра объекта, например, "CustomersConverter" и "CustomerConverter". Кроме того, для представления взаимосвязей существует дополнительный класс преобразования, называемый ссылочным преобразованием, например, "CustomerRefConverter".
Нажмите кнопку "Finish".
Просмотрите окно "Projects". Экран должен выглядеть следующим образом:
Узел "RESTful Web Services" в окне "Projects" теперь содержит все веб-службы RESTful в проекте. Значение в квадратных скобках, например, [/customers/], является значением для шаблона URI. По исходному файлу также можно перемещаться путем двойного щелчка этого узла. Также на этом экране отображаются все методы HTTP и методы поиска подресурсов. Как и в предыдущем случае, перемещаться по методам можно путем двойного щелчка узлов.
Теперь, после создания классов объектов и веб-служб RESTful, можно перейти к тестированию приложения. В IDE имеется удобная служебная программа для тестирования веб-служб RESTful. Она будет использоваться в следующем разделе.
Тестирование веб-служб RESTful
Целью этого упражнения является тестирование созданного приложения.
Щелкните правой кнопкой мыши узел проекта и выберите "Test RESTful Web Services", как показано ниже:
Выполняется запуск сервера и развертывание приложения. Наконец, обозреватель должен отобразить приложение со ссылкой на каждую из веб-служб:
Слева расположен набор корневых ресурсов: customers и discountCodes.
Сначала выберите корневой ресурс, например, customers. Щелкните раскрывающийся список "Methods" и выберите GET(application/xml) или GET(application/json). Нажмите кнопку "Test". Результат отображается в разделе "Test Output":
В разделе "Test Output" расположены 4 вкладки. В окне "Tabular" расположено упрощенное представление со всеми идентификаторами URI в документе результата, к которому можно перейти при помощи ссылок. В окне "Raw" отображаются фактически возвращенные данные. В зависимости от выбранного типа MIME (application/xml или application/json), данные будут представлены в формате XML или JSON соответственно. В окне "Headers" отображается информация заголовка HTTP. Вкладка "HTTP Monitor" содержит фактические запросы HTTP и ответы (переданные и принятые).
Закройте обозреватель и вернитесь в среду IDE.
Добавление компонента "Google Map"
Целью этого упражнения является добавление к веб-службам RESTful функциональных возможностей карт Google.
Откройте в редакторе класс CustomerResource, как показано ниже. В меню "Tools" выберите "Palette". Обратите внимание, что справа от редактора появляется палитра с фрагментами кода:
Подпишитесь для получения ключа карт Google по адресу http://www.google.com/apis/maps/signup.html. В диалоговом окне с запросом ключа для карт Google имеется поле для URL-адреса веб-сайта. В этом поле введите http://localhost:8080.
Из категории "Google" перетащите элемент "Map" в любое местоположение в классе. Откроется окно "Customize GoogleMap". Введите ключ Google Map в поле "apiKey", как показано ниже:
Нажмите кнопку "OK".
В среде IDE создается класс GoogleMapResource. Класс CustomerResource обращается к нему с помощью этого метода, который также создается средой IDE:
Щелкните правой кнопкой мыши узел проекта и снова выберите "Test RESTful Web Services". После открытия обозревателя щелкните googleMap. На экране должно отображаться следующее (с введенным ключом apiKey):
Нажмите кнопку "Test". На вкладке "Raw View" откроется карта Google:
Важно:В Firefox 2 тестовый клиент зависает при попытке представления изображения. Выберите URL-адрес http:.../googleMap/ в узле Resource:. Изображение карты появится в обозревателе на новой вкладке.
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .