(@Context HttpServletResponse响应无法正常工作

时间:2012-04-16 01:57:24

标签: java servlets web

带有resteasy框架的Web应用程序。

@Path("/do3")
@GET
public void response(@Context HttpServletResponse response) throws IOException{ 
    response.setStatus(202);

}

为什么get / do3返回204,而不是202?提前谢谢。

PS:(1)我切换到@post方法。它也无法得到预期的代码:202 by get。 (2)response.addHeader(“key”,“value”);可以正常工作。

1 个答案:

答案 0 :(得分:6)

RESTEasy正在尽可能地解释您的方法 - 您没有指定返回类型,因此它将204(无内容)返回给客户端。 void GET方法确实没有多大意义,应该避免,或转换为另一个HTTP动词(如POST)。

关于主题,这不是设置JAX-RS调用响应状态的正确方法。您应该使用ResponseBuilder代替。

Response.status(202).build();

当然,您可以将注入的HttpServletResponse用于任何其他事情,只要它在呼叫的上下文中有意义:

response.setHeader("Location", "http://www.example.com/myresource/5");