私はJavaとジャージーを使ってWebサービスをプログラミングしようとしています。最近、私は時々、エラー400レスポンスを作成した後、サーバーから何も返されないことに気付きました。私はジャージーとの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プラグインでテストしています。
JsonSyntaxExceptionまたはValidationExceptionを介して返されるときに常に起こるか、または両方で発生するかどうかを言うことができますか? – Fildor
両方とも塞がってしまいます。例外関連のようではありません。 – Robles