Download Text file using JAX-RS RESTful Webservice

In this tutorial we are going to see how to download text file using RESTful web service @Produces(“text/plain”) annotation.


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

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

output

Ask your questions in eHowToNow Forum

To Ask new Question : Ask Question
Check our existing discussions : Questions & Answers

Posts You may Like

  1. JAX-RS @PathParm Web service Example
  2. How to delete directory using Java
  3. Java 8 Sort Map by Key
  4. Java Data type and Identifier
  5. How to send Email with Attachment using Java
  6. Java 8 Stream Filter and Collect Example
  7. How to configure Maven to use Java 8
  8. Sending HTML Email using Java Mail API
  9. JAX-RS QueryParam – Jersey
  10. Java Best Practice Comments
  11. JSoup to parse body fragment
  12. Java Tutorial – First Java Program
  13. How to Read File using BufferedInputStream
  14. Hibernate Introduction
  15. How to append content into existing file in Java

Be the first to comment

Leave a Reply

Your email address will not be published.


*