簡體   English   中英

獲取HTTP狀態415 - 使用Jersey不支持的媒體類型

[英]Getting HTTP Status 415 - Unsupported Media Type with Jersey

以下是我的POJO課程

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;
}

}

下面是我的資源類

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'}";
        }
    }
}

}

請在此處查看maven依賴項

我確保在RESTClient中我將內容類型指定為Content-Type:application / json

請參閱RESTClient

下面是我的web.xml

但即使這樣,我也會收到錯誤“ 獲取HTTP狀態415 - 不支持的媒體

你能成像嗎,我哪里出錯了?

我看到你有MOXy。 但是MOXy只知道如何處理用@XmlRootElement注釋的類。 這就是415的原因:Jersey無法找到MessageBodyReader來處理這種類型。

Credentials類之上添加@XmlRootElement后,您將收到另一個錯誤,因為MOXy無法將JSON實際反序列化為您的Credentials 原因是沒有默認(no-arg)構造函數。 所以補充說,我認為你應該做得好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM