RESTFul java веб сервис. Пример Hello World example

Пример Java web-service с использованием технологии REST.

Используемые технологии и библиотеки
  • Apache CXF 3.1.6
  • Spring MVC 4.3.0.Release

1. Описание задачи

Создать простейший веб сервис с использованием технологии REST. Написать простой класс веб сервиса на стороне сервера и обратиться к нему с помощью кода клиентской части.

2. Структура проекта

RestProjectStructure

Создан один класс описывающий REST веб-сервис (HelloRest). Для демонстрации вывода Java объекта в xml формате используются два класса (Goods, Document). Клиентская часть находится в классе JavaStudyWS и запускается в методе main.

3. pom.xml

Для реализации веб-сервиса используется библиотека Apache CXF.

4. web.xml

Для удобства запуска была добавлена зависимость для Spring. Файл с настройками application-context.xml (в нем находится описание RESTful веб-сервиса) добавлен дескриптор развертывания. Так же был добавлен mvc-config.xml (не используется) в параметры инициализации init-param диспетчера сервлетов, чтобы приложение не ругалось на отсутствие файла с настройками (dispatcher-servlet.xml).

web.xml:

Для реализации веб-сервиса используется реализация Jax-RS API — Apache CXF. Создан сервлет и задан шаблон URL по которому он будет срабатывать (/rest/*).

5. application-context.xml

Настройки Spring были добавлены лишь для удобства быстрого описания веб-сервиса. Это не обязательно и веб-сервис можно задавать другими способами.

Здесь прописан веб сервис с id = helloRestService. Он будет доступен по ссылке, которая формируется из пути сервера + маппинг сервлета + адреса обработки сервиса (в данном случае совпадает с id).

6. Rest сервис

Был создан простейший веб сервис по технологии REST.

В аннотациях к методам описан HTTP метод по которому они будут срабатывать (в данном случае GET), путь (маппинг) и в каком виде будет предоставлен ответ (xml).

7. Модель данных

Созданы два демонстрационных класса, которые будут преобразовываться в xml формат и передаваться клиенту. У классов задана аннотация @XmlRootElement с помощью которой присваивается имя для корневого xml элемента в ответе (см. далее запуск приложения).

Goods:

Document:

8. Rest клиент

Для тестирования нашего сервиса был создан код, имитирующий клиентскую сторону.

JavaStudyWS:

Здесь создается экземпляр веб сервиса, задается адрес и параметры HTTP заголовка. Далее вызывается один из методов, который соответствует значению из restServiceUrl (в этом случае метод getDocument()).

9. Запуск веб сервиса

После запуска веб сервиса его можно вызвать прямо в браузере. Например метод getDocument() вызывается по ссылке http://localhost:8080/rest/helloRestService/getdoc.

restTest

Аналогично для метода getGoods().

Если запустить main метод класса JavaStudyWS, то мы увидим ответ веб-сервиса в консоли.

restTestClient

 

Таким образом можно создать простейший RESTful веб сервис java.

 

Исходный код

Rest Hello world

Share Button
7
2208 Total Views 2 Views Today
1 комментарий для “RESTFul java веб сервис. Пример Hello World example
  1. sir.mllmn:

    Спасибо большое за пример, но было бы круто так же описать деплой веб-сервиса — или в коротком виде как сделать через идею (фасеты, модули etc) или в полном виде. Спасибо большое.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*