【问题标题】:Rest API failing with javax.xml.bind.JAXBException ( 400 Bad Request)Rest API 因 javax.xml.bind.JAXBException 失败(400 错误请求)
【发布时间】:2017-02-15 00:42:16
【问题描述】:

其余 API 因 400 Bad request 而失败,响应如下

javax.xml.bind.JAXBException - 带有链接异常:[org.codehaus.jettison.json.JSONException:JSONObject 文本必须以 '{' 在字符 0 的 ]

处开头

下面是我的代码,

API 资源

@GET
@Path("/getTeams")
@Produces(MediaType.APPLICATION_JSON)
public Response getTeamList(final TeamSearchRequest teamSearchRequest, @Context UriInfo uriInfo) {
      //Business
}

请求类

@XmlRootElement(name = "teamSearchRequest")
public class TeamSearchRequest {
    private String searchText;
    private String searcherTeamId;
    public TeamSearchRequest(){}
//setters and getters
}

API URI - http://localhost:8080/letsplay/team/getTeams

API 请求正文 -

{
    "teamSearchRequest": {
        "searchText": "Mumbai",
        "searcherTeamId": "1"
    }
} 

注意 - 我已经检查了 SO 中的所有类似问题。

非常感谢任何建议。

【问题讨论】:

  • 您是否为您的项目设置了 media-moxy 依赖项以启用 JSON 支持?假设您使用的是泽西岛..
  • @Prathap,我使用的是 Spring Rest Integration 而不是 Jersey,所以 media-moxy 不适用。
  • 您是否使用 JSONObject 来映射请求值?如果是这样,您可以将JSONObject 作为方法参数而不是TeamSearchRequest,然后执行jsonObject.getJSONObject("teamSearchRequest") 以获得所需的值。

标签: java json rest http spring-rest


【解决方案1】:

我认为你的 JSON 是错误的。它应该是这样的:

{

     "searchText": "Mumbai",
     "searcherTeamId": "1"

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2015-04-10
    • 2014-12-01
    相关资源
    最近更新 更多