Category: Базовые операции

  • Jersey JAX-RS загрузка файла на сервер

    Для того, чтобы JAX-RS сервис мог принимать файлы необходимо добавить maven-зависимость: <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-multipart</artifactId> <version>1.8</version> </dependency>

  • Jersey JAX-RS загрузка файла с сервера

    Чтобы указать JAX-RS, что вызов данного метода приводит к загрузке файла, необходимо аннотировать метод @Produces(“content/type”) , например @Produces(“text/plain”) для случая с текстовым файлов. Также необходимо указать Content-Disposition в ответе сервера. Код примера: package ru.mydesignstudio.rest; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; @Path(“/hello”) public class RestService { @GET @Path(“/file”) @Produces(“text/plain”) public Response…

  • Jersey JAX-RS использование @HeaderParam

    Для получения заголовков HTTP-запроса (HTTP Headers) есть два варианта: С помощью @HeaderParam С помощью @Context Напишем простой сервис и рассмотрим все варианты: package ru.mydesignstudio.rest; import java.util.List; import java.util.Map.Entry; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; import org.apache.commons.lang3.StringUtils; @Path(“/hello”) public class RestService { @GET @Path(“/header”) public Response header(@HeaderParam(“user-agent”) String userAgent) { return Response.ok() .entity(“User…

  • Jersey JAX-RS использование @FormParam

    В JAX-RS использование @FormParam позволяет связать поля формы с параметрами метода сервиса. Рассмотрим на простом примере, как это делается. Создаем форму <html> <head> </head> <body> <form action=”services/hello/form” method=”POST”> <p> <b>First name: </b> <input type=”text” name=”firstName” /> </p> <p> <b>Last name:</b> <input type=”text” name=”lastName” /> </p> <input type=”submit”> </form> </body> </html>

  • Jersey JAX-RS использование @MatrixParam

    @MatrixParam позволяет принимать параметры, переданные в строке запроса в виде пар ключ-значение, например: /app/services/hello/MyDesignStudio;author=ABarmin;year=2016 В этом примере два параметра: author=ABarmin и year=2016 Использование @MatrixParam package ru.mydesignstudio.rest; import javax.ws.rs.GET; import javax.ws.rs.MatrixParam; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; @Path(“/hello”) public class RestService { @GET @Path(“/{name}”) public Response helloWorld( @PathParam(“name”) String name, @MatrixParam(“author”) String author, @MatrixParam(“year”) String year) { return…