@GET
@Produces("text/html")
public String getHtml() {
return "<html lang=\"en\"><body><h1>Hello, World!!</body></h1></html>";
}
Java Platform, Enterprise Edition (Java EE) 8 Учебник по Java EE |
Назад | Вперёд | Содержание |
Этот раздел содержит введение в создание, развёртывание и запуск приложений JAX-RS. В этом разделе демонстрируются шаги, необходимые для создания, сборки, развёртывания и тестирования очень простого веб-приложения, использующего аннотации JAX-RS.
Здесь рассматриваются следующие темы:
В этом разделе объясняется, как использовать IDE NetBeans для создания RESTful веб-сервиса с использованием архетипа Maven. Архетип создаёт каркас для приложения, и вам остаётся только реализовать соответствующий метод.
Вы можете найти версию этого приложения в tut-install/examples/jaxrs/hello/
.
Здесь рассматриваются следующие темы:
Убедитесь, что вы установили архетипы, как описано в Установка архетипов учебника.
В IDE NetBeans создайте веб-приложение, используя архетип Maven jaxrs-service-archetype
. Этот архетип создаёт очень простое веб-приложение "Hello, World".
В меню «Файл» выберите «Новый проект».
В "Категориях" выберите Maven. В "Проектах" выберите «Проект из архетипа». Нажмите кнопку Далее.
В поле Поиск введите jaxrs-service
, выберите jaxrs-service-archetype
и нажмите кнопку Далее.
В поле «Имя проекта» введите HelloWorldApplication
, задайте местоположение проекта и задайте для имени пакета значение javaeetutorial.hello
и нажмите «Готово».
Проект создан.
В HelloWorld.java
найдите метод getHtml()
. Замените комментарий //TODO
следующим текстом, чтобы в итоге получилось:
@GET
@Produces("text/html")
public String getHtml() {
return "<html lang=\"en\"><body><h1>Hello, World!!</body></h1></html>";
}
Замечание: Поскольку созданный тип MIME — это HTML, вы можете использовать теги HTML в выражении return. |
Кликните правой кнопкой мыши проект HelloWorldApplication
на панели «Проекты» и выберите «Выполнить».
Эта команда собирает и развёртывает приложение на сервере GlassFish.
В браузере откройте следующий URL:
http://localhost:8080/HelloWorldApplication/HelloWorldApplication
Откроется окно браузера и отобразит возвращаемое значение Hello, World!!
Другие примеры приложений, демонстрирующие развёртывание и запуск приложений JAX-RS с использованием IDE NetBeans, см. в Приложение rsvp и Your First Cup: введение в платформу Java EE по ссылке http://docs.oracle.com/javaee/7/firstcup/doc/
. Вы также можете посмотреть материалы на учебном сайте IDE NetBeans, например, озаглавленном «Начало работы с RESTful веб-сервисами», по ссылке https://netbeans.org/kb/docs/websvc/rest.html
. В этом руководстве содержится раздел о создании приложения CRUD из базы данных. Создание, чтение, обновление и удаление (CRUD) — четыре основные операции для работы с реляционными базами данных.
Пример приложения rsvp
, расположенный в каталоге tut-install/examples/jaxrs/rsvp/
, позволяет приглашённым на мероприятие указать, что приглашение принято. Мероприятия, приглашённые на них люди и ответы на приглашение сохраняются в Apache Derby с использованием API персистентности Java. Ресурсы JAX-RS в rsvp
отображаются в сессионном Enterprise-бине без состояния.
Здесь рассматриваются следующие темы:
В примере приложения rsvp
присутствуют три Enterprise-бина: rsvp.ejb.ConfigBean
, rsvp.ejb.StatusBean
и rsvp.ejb.ResponseBean
.
ConfigBean
— это сессионный компонент-синглтон, который инициализирует данные в базе данных.
StatusBean
предоставляет ресурс JAX-RS для отображения текущего статуса всех приглашённых на мероприятие. Шаблон пути URI объявляется сначала в классе, а затем в методе getEvent
:
@Stateless
@Named
@Path("/status")
public class StatusBean {
...
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("{eventId}/")
public Event getEvent(@PathParam("eventId") Long eventId) {
...
Комбинация двух аннотаций @Path
приводит к следующему шаблону пути URI:
@Path("/status/{eventId}/")
Переменная пути URI eventId
— это переменная @PathParam
в методе getEvent
, которая отвечает на HTTP GET-запросы и снабжена аннотацией @GET
. Переменная eventId
используется для поиска всех текущих ответов в базе данных для конкретного мероприятия.
ResponseBean
предоставляет ресурс JAX-RS для установки ответа приглашённого на конкретное мероприятие. Шаблон пути URI для ResponseBean
объявлен следующим образом:
@Path("/{eventId}/{inviteId}")
В шаблоне пути объявлены две переменные пути URI: eventId
и inviteId
. Как и в StatusBean
, eventId
является уникальным идентификатором для конкретного мероприятия. Каждый приглашённый на это мероприятие имеет уникальный идентификатор для приглашения inviteId
. Обе эти переменные пути используются в двух методах JAX-RS — в ResponseBean
: getResponse
и putResponse
. Метод getResponse
отвечает на HTTP GETзапросы и отображает текущий ответ приглашённого и форму для изменения ответа.
Класс javaeetutorial.rsvp.rest.RsvpApplication
определяет путь к корневому приложению для ресурсов, применяя аннотацию javax.ws.rs.ApplicationPath
на уровне класса.
@ApplicationPath("/webapi")
public class RsvpApplication extends Application {
}
Приглашённый, желающий изменить свой ответ, выбирает новый ответ и отправляет данные формы, которые обрабатываются как HTTP POST-запрос методом putResponse
. Новый ответ извлекается из HTTP POST-запроса и сохраняется в виде строки userResponse
. Метод putResponse
использует userResponse
, eventId
и inviteId
для изменения ответа приглашённого в базе данных.
Мероприятия, люди и ответы в rsvp
инкапсулированы в сущности API персистентности Java. Объекты rsvp.entity.Event
, rsvp.entity.Person
и rsvp.entity.Response
соответственно представляют мероприятия, приглашённых и их ответы.
Класс rsvp.util.ResponseEnum
объявляет перечислимый тип, представляющий все возможные состояния ответа, которые может иметь приглашённый.
Веб-приложение также содержит два Managed-бина CDI: StatusManager
и EventManager
, которые используют клиентский API JAX-RS для вызова ресурсов, представленных в StatusBean
и ResponseBean
. Информацию об использовании клиентского API в rsvp
см. в «Клиентский API в примере приложения rsvp».
И IDE NetBeans, и Maven можно использовать для развёртывания и запуска примера приложения rsvp
.
Здесь рассматриваются следующие темы:
Если сервер базы данных ещё не запущен, запустите его, следуя инструкциям в Запуск и остановка Apache Derby.
Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).
В меню «Файл» выберите «Открыть проект».
В диалоговом окне «Открыть проект» перейдите к:
tut-install/examples/jaxrs
Выберите каталог rsvp
.
Нажмите Открыть проект.
На вкладке «Проекты» кликните правой кнопкой мыши проект rsvp
и выберите «Выполнить».
Проект будет скомпилирован, скомпонован и развёрнут на сервере GlassFish. Откроется окно веб-браузера по следующему URL:
http://localhost:8080/rsvp/index.xhtml
В окне веб-браузера нажмите на ссылку Статус мероприятия для Duke’s Birthday event.
Вы увидите текущих приглашённых и их ответы.
Кликните текущий ответ одного из приглашённых в столбце «Статус» таблицы, выберите новый ответ и нажмите «Обновить свой статус».
Новый статус приглашённого теперь должен отображаться в таблице и их статусах ответов.
Если сервер базы данных ещё не запущен, запустите его, следуя инструкциям в Запуск и остановка Apache Derby.
Удостоверьтесь, чтобы GlassFish Server был запущен (см. Запуск и остановка сервера GlassFish).
В окне терминала перейдите в:
tut-install/examples/jaxrs/rsvp/
Введите следующую команду:
mvn install
Эта команда собирает, компонует и развёртывает rsvp
на сервере GlassFish.
Откройте окно веб-браузера по следующему URL:
http://localhost:8080/rsvp/
В окне веб-браузера нажмите на ссылку Статус мероприятия для Duke’s Birthday event.
Вы увидите текущих приглашённых и их ответы.
Кликните текущий ответ одного из приглашённых в столбце «Статус» таблицы, выберите новый ответ и нажмите «Обновить свой статус».
Новый статус приглашённого теперь должен отображаться в таблице и их статусах ответов.
Большинство сайтов блогов используют веб-сервисы RESTful. Эти сайты включают загрузку файлов XML в формате RSS или Atom, которые содержат списки ссылок на другие ресурсы. Другие веб-сайты и веб-приложения, которые используют REST-подобные интерфейсы разработчика для данных, включают Twitter и Amazon S3 (Simple Storage Service). Список корзин и объектов Amazon S3, их создание и извлечение возможно с использованием HTTP-интерфейса в стиле REST или SOAP-интерфейса. Примеры, которые поставляются с Jersey, включают пример службы хранения с RESTful интерфейсом.
Назад | Вперёд | Содержание |