我正在尝试使用java和jersey编写Web服务。最近我注意到,有时,在创建错误400响应后,我不会从服务器返回任何内容。
例如,使用此函数,我得到一个201代码没有问题,但当我尝试获得400响应时,我等待响应,直到我超时。
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN })
public Response registerUser(String json) {
Gson gson = new Gson();
try {
RegistryData r = gson.fromJson(json, RegistryData.class);
new RegisterValidator().validate(r);
// new UserDao().addUser(new User(r));
return Response.ok(gson.toJson(r), MediaType.APPLICATION_JSON).status(Status.CREATED).build();
} catch (JsonSyntaxException e) {
e.printStackTrace();
return Response.status(Status.BAD_REQUEST).entity("ERROR: BAD REQUEST").build();
} catch (ValidationException e) {
return Response.status(Response.Status.BAD_REQUEST).entity("ERROR: " + e.getMessage())
.type(MediaType.TEXT_PLAIN).build();
}
}
我正在使用Tomcat 7,Java 7,Jersey 1.19,我正在使用适用于Chrome的Advanced Rest Client插件进行测试。
答案 0 :(得分:1)
我遇到过与此插件类似的问题,当服务器响应错误时,它会“卡住”。
您可以尝试其他客户端,例如curl(如果您使用的是* nix),RestClient(http://code.fosshub.com/WizToolsorg-RESTClient/downloads)或其他可以在线找到的工具。