Jersey项目报错:Unrecognized token 'id': was expecting ('true', 'false' or 'null') ...

时间:2020-12-25 17:08:17

跳坑经历:Jersey项目报错

Unrecognized token 'id': was expecting ('true', 'false' or 'null')
at [Source: (org.glassfish.jersey.message.internal.EntityInputStream); line: 1, column: 4]

问题描述:

书写接口,采用put请求,约束前端请求格式为json,使用RestClient接口测试工具进行测试。
接口代码如下:

@PUT @Path("/putPersonInfo")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public ServerResponse updatePatientInfo(PersonalDTO personalDTO){
...
}

测试工具测试情况如下:
Jersey项目报错:Unrecognized token 'id': was expecting ('true', 'false' or 'null') ...

问题出现原因及解决办法:

此问题出现原因为
    后端在解析请求json的时候无法识别“id”这个请求参数,而id恰巧就是第一个参数,也就是说整个json是无法解析的,说白了就是json格式错误。

解决办法
     在测试接口的时候,我们只在请求头上添加contentType = application/json是不够的,主要还是要保证传输的请求是json的格式,RestClient测试工具右侧使用Form表单提交post请求发送的并不是标准的json。如果其他童鞋没有使用此测试工具,也请检查自己的请求是不是标准的json格式。

另外说明:

     小弟我在这里使用的接收参数是对象的形式,也是会影响到接收参数相关问题,但是在此处不做赘述。