Jersey используется для реализации RESTful веб-сервисов, основанных на спецификации JAX-RS (JSR 311).
Рассмотрим, как сделать простой REST-сервис на основе jersy. Нам понадобится:
- Jersey 1.8
- Apache Maven
- IDE
Структура проекта:
Зависимости получим через Maven, фрагмент pom.xml
приведен ниже:
<?xml version="1.0" encoding="UTF-8"?> <project ...> ... <dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.8</version> </dependency> </dependencies> ... </project>
Сам класс веб-сервиса очень прост:
package ru.mydesignstudio.rest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @Path("/hello") public class RestService { @GET @Path("/{name}") public String helloWorld(@PathParam("name") String name) { return "Hello, " + name; } }
В дескрипторе развертывания web.xml
указываем класс Jersey-сервлета com.sun.jersey.spi.container.servlet.ServletContainer
и в качестве параметра com.sun.jersey.config.property.packages
указываем пакет с классами сервисов:
<?xml version="1.0" encoding="UTF-8"?> <web-app ...> <servlet> <servlet-name>jersey-servlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>ru.mydesignstudio.rest</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey-servlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
В данном конкретном примере сервис доступен по адресу /app/service/hello/
– часть service указана в параметрах маппинга сервлета, hello – в @Path("/hello")
класса-сервиса.
В проект в качестве зависимости добавлен tomcat7-maven-plugin
, поэтому он может быть запущен через maven командой mvn clean package tomcat7:run