2017-03-31 113 views
2

下面是我的POJO類獲取HTTP狀態415 - 與澤西不支持的媒體類型

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

}

Please see the maven dependencies here

我保證在RESTClient實現我給內容類型的內容類型:應用程序/ JSON

Please see the RESTClient

下面是我的web.xml

但即使如此,我得到的錯誤「獲取HTTP狀態415 - 不支持的媒體'

你能形象,我哪裏錯了?

回答

1

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

後您的Credentials類的頂部添加@XmlRootElement,你會得到另一個錯誤,因爲莫西將無法在JSON序列化實際上你Credentials。原因是沒有默認的(無參數)構造函數。所以補充一點,我認爲你應該很好。

+0

非常感謝。它的工作方式與您所描述的完全相同 –

相關問題