Java 我用Jersey生成了一个400响应,但没有得到返回

Java 我用Jersey生成了一个400响应,但没有得到返回,java,rest,jersey,Java,Rest,Jersey,我正在尝试用java和jersey编写一个web服务。最近我注意到,有时,在创建错误400响应后,我不会从服务器返回任何内容 例如,使用这个函数,我得到了一个没有问题的201代码,但是当我试图得到400响应时,我会一直等待响应,直到得到超时 @POST @Consumes(MediaType.APPLICATION_JSON) @Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN }) public Response regis

我正在尝试用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的高级Rest客户端插件进行测试。

我在这个插件中遇到了类似的问题,看到它在服务器响应错误时“卡住了”


您可以尝试其他客户端,例如curl(如果您使用*nix)、RestClient(),或者您可以在线找到的其他工具。

您能说它是否总是在通过JsonSyntaxException或ValidationException返回时发生,还是同时发生在这两种情况下?它们都会卡住。这似乎与异常无关。很高兴知道。我以前使用过那个插件,但从未见过这种行为。但话说回来,已经有一段时间了:)尝试了另一个,得到了回应。谢谢