Давайте начнем писать реальные веб-сервисы RESTful с Jersey Framework. Прежде чем вы начнете писать свой первый пример с использованием Jersey Framework, вы должны убедиться, что вы правильно настроили среду Jersey, как описано в главе RESTful Web Services — Environment Environment Setup . Здесь я также предполагаю, что вы немного знакомы с Eclipse IDE.
Итак, давайте приступим к написанию простого приложения на Джерси, которое предоставит метод веб-службы для отображения списка пользователей.
Создание проекта Java
Первым шагом является создание динамического веб-проекта с использованием Eclipse IDE. Выберите пункт « Файл» → «Создать» → «Проект» и, наконец, выберите мастер « Динамический веб-проект» из списка. Теперь назовите ваш проект как UserManagement с помощью окна мастера, как показано на следующем снимке экрана —
Как только ваш проект будет успешно создан, вы увидите следующее содержимое в Project Explorer —
Добавление необходимых библиотек
В качестве второго шага добавим Jersey Framework и его зависимости (библиотеки) в наш проект. Скопируйте все jar-файлы из следующих каталогов загрузочной zip-папки jersey в директорию WEB-INF / lib проекта.
- \ Jaxrs-ри-2,17 \ jaxrs-ри \ апи
- \ Jaxrs-ри-2,17 \ jaxrs-ри \ внутр
- \ Jaxrs-ри-2,17 \ jaxrs-ри \ Lib
Теперь щелкните правой кнопкой мыши на имени вашего проекта UserManagement и выберите параметр, доступный в контекстном меню — « Путь сборки» → «Настроить путь сборки» для отображения окна «Путь сборки Java».
Теперь используйте кнопку « Добавить JAR» , доступную на вкладке « Библиотеки », чтобы добавить JAR, присутствующие в каталоге WEBINF / lib.
Создание исходных файлов
Теперь давайте создадим фактические исходные файлы в проекте UserManagement . Сначала нам нужно создать пакет с именем com.tutorialspoint . Для этого щелкните правой кнопкой мыши на src в разделе проводника пакетов и выберите опцию — Создать → Пакет .
Далее мы создадим файлы UserService.java, User.java, UserDao.java в пакете com.tutorialspoint.
User.java
package com.tutorialspoint; import java.io.Serializable; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "user") public class User implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; private String profession; public User(){} public User(int id, String name, String profession){ this.id = id; this.name = name; this.profession = profession; } public int getId() { return id; } @XmlElement public void setId(int id) { this.id = id; } public String getName() { return name; } @XmlElement public void setName(String name) { this.name = name; } public String getProfession() { return profession; } @XmlElement public void setProfession(String profession) { this.profession = profession; } }
UserDao.java
package com.tutorialspoint; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; public class UserDao { public List<User> getAllUsers(){ List<User> userList = null; try { File file = new File("Users.dat"); if (!file.exists()) { User user = new User(1, "Mahesh", "Teacher"); userList = new ArrayList<User>(); userList.add(user); saveUserList(userList); } else{ FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); userList = (List<User>) ois.readObject(); ois.close(); } } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return userList; } private void saveUserList(List<User> userList){ try { File file = new File("Users.dat"); FileOutputStream fos; fos = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(userList); oos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
UserService.java
package com.tutorialspoint; import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/UserService") public class UserService { UserDao userDao = new UserDao(); @GET @Path("/users") @Produces(MediaType.APPLICATION_XML) public List<User> getUsers(){ return userDao.getAllUsers(); } }
В отношении основной программы следует отметить два важных момента:
UserService.java
-
Первый шаг — указать путь для веб-службы с помощью аннотации @Path к UserService.
-
Второй шаг — указать путь для конкретного метода веб-службы, используя аннотацию @Path для метода UserService.
Первый шаг — указать путь для веб-службы с помощью аннотации @Path к UserService.
Второй шаг — указать путь для конкретного метода веб-службы, используя аннотацию @Path для метода UserService.
Создание файла конфигурации Web.xml
Вам необходимо создать файл конфигурации Web xml, который является файлом XML и используется для указания сервлета платформы Jersey для нашего приложения.
web.xml
<?xml version = "1.0" encoding = "UTF-8"?> <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> <display-name>User Management</display-name> <servlet> <servlet-name>Jersey RESTful Application</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.tutorialspoint</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Jersey RESTful Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
Развертывание программы
Когда вы закончите создавать исходные файлы и файлы веб-конфигурации, вы будете готовы к этому шагу, который компилирует и запускает вашу программу. Для этого, используя Eclipse, экспортируйте ваше приложение как файл war и разверните его в tomcat.
Чтобы создать файл WAR с использованием Eclipse, выберите « Файл» → «Экспорт» → «Интернет» → «Файл войны» и, наконец, выберите «UserManagement» проекта и папку назначения. Чтобы развернуть файл war в Tomcat, поместите файл UserManagement.war в каталог установки Tomcat → каталог webapps и запустите Tomcat.
Запуск программы
Мы используем Postman , расширение для Chrome, для тестирования наших веб-сервисов.
Сделайте запрос к UserManagement, чтобы получить список всех пользователей. Поместите http: // localhost: 8080 / UserManagement / rest / UserService / users в POSTMAN с GET-запросом и увидите следующий результат.
Поздравляем, вы успешно создали свое первое приложение RESTful.