如何以空实体返回响应状态405?

时间:2013-07-02 14:36:57

标签: java rest entity jax-rs http-status-code-405

如何在java REST中使用空实体返回响应状态405?

@POST
@Path("/path")
public Response createNullEntity() {
    return Response.created(null).status(405).entity(null).build();
}

它返回状态代码405,但实体不为null,它是错误405的http页面。

1 个答案:

答案 0 :(得分:2)

当您返回错误状态时,Jersey会通过sendError将响应委派给容器的错误处理。调用sendError时,容器将提供错误页面。 Java Servlet Specification§10.9错误处理中概述了此过程。

我怀疑你看到的是容器的405响应的默认错误页面。您可以通过specifying a custom error page(可能为空)解决您的问题。或者,如果您在回复中提供实体,泽西岛将不会使用sendError。你可以像这样给它一个空字符串:

@POST
@Path("/path")
public Response createNullEntity() {
  return Response.status(405).entity("").build();
}

上述结果为Content-Length的{​​{1}}