In this tutorial we are going to see how to download text file using RESTful web service @Produces(“text/plain”) annotation.
Create maven web application project and add Jersey dependency in pom.xml. Find Jersey 2.x maven dependency configuration below. If you are new to maven refer our maven tutorials.
Jersey 2.x dependency in pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ehowtonow</groupId>
<artifactId>RestTutorials</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>RestTutorials Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<jersey2.version>2.19</jersey2.version>
<jaxrs.version>2.0.1</jaxrs.version>
</properties>
<dependencies>
<!-- JAX-RS -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>${jaxrs.version}</version>
</dependency>
<!-- Jersey 2.19 -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey2.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey2.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey2.version}</version>
</dependency>
</dependencies>
<build>
<finalName>RestTutorials</finalName>
</build>
</project>
DownloadTextFile.java
package com.ehowtonow.webservice;
import java.io.File;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
@Path("/filedownload")
public class DownloadTextFile {
private static final String FILE_PATH = "C://ehowtonow//java-tutorials.txt";
@GET
@Path("/txt-file")
@Produces("text/plain")
public Response downloadFile() {
File file = new File(FILE_PATH);
ResponseBuilder responseBuilder = Response.ok((Object)file);
responseBuilder.header("Content-Disposition",
"attachment; filename=\"java-tutorials-corner.txt\"");
return responseBuilder.build();
}
}
@Produces(“text/plain”) used to set output response text file. Content-Disposition in response header to tell user agent to pop up download box to download file
Configure Jersey 2.x Servlet dispatcher
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Restful Webservice Example</display-name>
<servlet>
<servlet-name>jersey-serlvet</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.ehowtonow.webservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Now you can run the service and access the service by calling the following URL
http://localhost:8080/RestTutorials/rest/filedownload/txt-file
Ask your questions in eHowToNow Forum
Post your technical, non-technical doubts, questions in our site. Get answer as soon as possible, meanwhile you can help others by answering, unanswered questions.
To Ask new Question : Ask Question
Check our existing discussions : Questions & Answers
To Ask new Question : Ask Question
Check our existing discussions : Questions & Answers
- Restful Webservice HelloWorld Jersey 2.x Example
- JAX-RS Send List using QueryParam Annotation
- JAX-RS @FormParam Web service example
- RESTful Web service to consume JSON and Produce XML – Jersey 1.x
- JAX-RS @GET RESTful webservice
- JAX-RS @POST using RESTful web service – Jersey 1.x
- JAX-RS @MatrixParam Restful Webservice
- JAX-RS Get HTTP Headers using @Context
- JAX-RS @PATH for URI – Jersey
- Restful Webservice HelloWorld Example Jersey 1.x
- JAX-RS Web Service to produce XML using JAXB
- JAX-RS Web service to Consume JSON using Jersey 1.x
- Download Excel file using JAX-RS RESTful Webservice
- File Upload using JAX-RS RESTful Webservice (Jersey 2.x)
- JAX-RS Get HTTP Headers using @HeaderParam
Leave a Reply
You must be logged in to post a comment.