Getting HTTP Status 415 - Unsupported Media Type from Jersey
Below is my POJO class
public class Credentials {
private int cred_id;
private String cred_user_name;
private String cred_password;
private String cred_token;
public Credentials(int cred_id, String cred_user_name,
String cred_password, String cred_token) {
this.cred_id = cred_id;
this.cred_user_name = cred_user_name;
this.cred_password = cred_password;
this.cred_token = cred_token;
}
public int getCred_id() {
return cred_id;
}
public void setCred_id(int cred_id) {
this.cred_id = cred_id;
}
public String getCred_user_name() {
return cred_user_name;
}
public void setCred_user_name(String cred_user_name) {
this.cred_user_name = cred_user_name;
}
public String getCred_password() {
return cred_password;
}
public void setCred_password(String cred_password) {
this.cred_password = cred_password;
}
public String getCred_token() {
return cred_token;
}
public void setCred_token(String cred_token) {
this.cred_token = cred_token;
}
}
Below is my resource class
public class ValidateUser {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String validateUser(Credentials credentials) {
System.out.println("Going to validate the user" + credentials);
String username = credentials.getCred_user_name();
String password = credentials.getCred_password();
CredentialsAccessor ca = new CredentialsAccessor();
long count = 0;
count = ca.authenticateUser(username, password);
if (count > 0) {
JSONObject jObject = new JSONObject();
try {
jObject.put("valid", "true");
return jObject.toString();
} catch (JSONException e) {
e.printStackTrace();
return "{'valid':'error'}";
}
} else {
JSONObject jObject = new JSONObject();
try {
jObject.put("valid", "false");
return jObject.toString();
} catch (JSONException e) {
e.printStackTrace();
return "{'valid':'error'}";
}
}
}
}
I ensured that in the RESTClient I will specify the content type as Content-Type: application / json
Below is my web.xml
But even then, I get the error " Getting HTTP Status 415 - Unsupported Media
Can you picture where I am going wrong?
source to share
I see you have MOXy. But MOXy knows how to handle classes annotated with @XmlRootElement
. What's the reason for 415: Jersey can't find the MessageBodyReader
type to handle.
After adding @XmlRootElement
on top of the class, Credentials
you'll get another error because MOXy won't be able to actually deserialize the JSON for your Credentials
. The reason is there is no default constructor (no-arg). So add this and I think you should be good.
source to share