sajad
sajad

Reputation: 2174

Cannot upload file using JAX-RS

I am trying to add a Rest to my backend for uploading files. I use this code on the server:

import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
@POST
@Path("/upload_thesis")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
        @DefaultValue("true") @FormDataParam("enabled") boolean enabled,
        @FormDataParam("file") InputStream file,
        @FormDataParam("file") FormDataContentDisposition fileDisposition

After I have packaged my program as a jar file and put it on the apache tomcat server, I see this error on the server:

java.lang.RuntimeException: Wrong or absent annotation at parameter with index 1 at class

I use this version of jersey on my dependencies:

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

EDIT:

I think I have a dependency problem, I am confused which one I have to use:

import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataParam;

or

import org.glassfish.jersey.media.multipart.FormDataBodyPart;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.glassfish.jersey.media.multipart.FormDataParam;

Upvotes: 0

Views: 172

Answers (1)

cassiomolin
cassiomolin

Reputation: 130857

It depends on the version of Jersey you are using:

  • For Jersey 1.x, use types from com.sun.jersey.
  • For Jersey 2.x, use types from org.glassfish.jersey.

When it comes to dependencies, pick the following for Jersey 1.x:

<dependency>
    <groupId>com.sun.jersey.contribs</groupId>
    <artifactId>jersey-multipart</artifactId>
    <version>${jersey.version}</version>
</dependency>

And the following dependency for Jersey 2.x:

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>${jersey.version}</version>
</dependency>

Upvotes: 1

Related Questions