Ali Ben Messaoud
Ali Ben Messaoud

Reputation: 11920

Consume Cookie and JSON with JAX-RS Jersey Service

I am sending these data to Restful Web Service (Jersey) using jQuery code and the method POST:

var dataString = {"id":1,"status":"passed","session":"nothing"};
$.post("https://localhost:8443/pv01/ws/user/cookie", dataString);

And with this data, I am sending a cookie. The data in te cookie come from an external API.

The problem what I am facing is how to receive the cookie value and the dataString together.

Here's my Java code to read a Cookie :

@POST
@Path("cookie")    
public String cookie(@CookieParam("L14c") String str) {        
    Logger.getLogger(Main.class.getName()).log(Level.INFO, "message : " + str );
    return str;
}

And for the data, I can do like this :

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("cookie")
public String cookie(DataString dataString) {        
    Logger.getLogger(Main.class.getName()).log(Level.INFO, "message : " + dataString );
    return "ok";
}

But when I combine the two methods to accept cookie and the JSON dataString, I got Error 415, Unsupported media type!

I tried to look on HTTP Headers, but I can access only cookies.

Upvotes: 1

Views: 445

Answers (1)

Paul Samsotha
Paul Samsotha

Reputation: 209004

The problem is with the jQuery request. It looks like the Content-Type is defaulting to application/x-www-form-urlencoded. You should use a Browser debugger like Firebug. Makes it easier to spot these kind of things.

From what I've tested, it should work with something like

$.ajax({
    url: theUrl,
    type: "POST",
    data: JSON.stringify(dataString),
    dataType: "json",
    contentType: "application/json",
    success: function(response) {
        alert(JSON.stringify(response));
    }
});

Upvotes: 1

Related Questions