Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't find @FormDataParam in Jersey 2.17

Tags:

I'm quite new to web services so I've started with basic examples. This one relates to file upload. I'm using latest (2.17) version of Jersey bundle for non-maven developers. It states that:

bundle contains the JAX-RS 2.0 API jar, all the core Jersey module jars as well as all the required 3rd-party dependencies

. The problem is that I can not compile this part:

@POST @Path("/upload") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFile(     @FormDataParam("file") InputStream uploadedInputStream,     @FormDataParam("file") FormDataContentDisposition fileDetail) {     String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName();     // save it     writeToFile(uploadedInputStream, uploadedFileLocation);     String output = "File uploaded to : " + uploadedFileLocation;     return Response.status(200).entity(output).build(); } 

It seems that @FormDataParam doesn't exist in Jersey 2.17 bundle although docs says it does. Is the 2.17 bundle incomplete? How can I resolve this problem?

like image 765
Rasa Avatar asked Mar 24 '15 07:03

Rasa


1 Answers

The bundle only includes the the core modules (and their dependencies). Unfortunately, Multipart is not part of the core. You'll need this dependency (Maven) also

<dependency>     <groupId>org.glassfish.jersey.media</groupId>     <artifactId>jersey-media-multipart</artifactId>     <version>2.17</version> </dependency 

If you're not using Maven, from what I can tell, this artifact only has one other dependency (that is not already included in the bundle), and it's mimepull-1.9.3.

You can download both artifacts below

  • jersey-media-multipart
  • mimepull-1.9.3
like image 59
Paul Samsotha Avatar answered Sep 29 '22 01:09

Paul Samsotha