2017-03-31 118 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

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

相关问题