Download image using JAX-RS RESTful Webservice

In this tutorial we are going to see about how to download image file using JAX-RS RESTful web service @Produces(“image/png”) 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>

DownloadImageFile.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 DownloadImageFile {

 private static final String FILE_PATH = "C://jtc//java-tutorials.png";
 @GET
 @Path("/image-file")
 @Produces("image/png")
 public Response downloadFile() {
  File file = new File(FILE_PATH);
  ResponseBuilder responseBuilder = Response.ok((Object)file);
  responseBuilder.header("Content-Disposition",
    "attachment; filename=\"java-tutorials.png\"");
  return responseBuilder.build();
 }
}

@Produces(“image/png”) used to set output response image 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/image-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

  1. JAX-RS @FormParam Web service example
  2. Download Text file using JAX-RS RESTful Webservice
  3. Download PDF file using JAX-RS RESTful Webservice
  4. JAX-RS @GET RESTful webservice
  5. JAX-RS Send List using QueryParam Annotation
  6. Download image using JAX-RS RESTful Webservice
  7. Restful Webservice HelloWorld Example Jersey 1.x
  8. JAX-RS @PATH for URI – Jersey
  9. JAX-RS QueryParam – Jersey
  10. JAX-RS get QueryParam using @Context UriInfo
  11. JAX-RS @POST using RESTful web service – Jersey 1.x
  12. RESTful Web service to consume JSON and Produce XML – Jersey 1.x
  13. JAX-RS @MatrixParam Restful Webservice
  14. JAX-RS to Produce JSON using Jackson – Jersey 1.x
  15. JAX-RS @QueryParam with @DefaultValue – Jersey

Be the first to comment

Leave a Reply