带有 resteasy 框架的 Web 应用程序。
@Path("/do3")
@GET
public void response(@Context HttpServletResponse response) throws IOException{
response.setStatus(202);
}
为什么 get/do3 返回 204,而不是 202?提前致谢。
PS: (1) 我切换到@post 方法。它也无法通过get获得预期的代码:202。 (2) response.addHeader("key", "value");可以正常工作。
最佳答案
RESTEasy 正在尽其所能地解释您的方法 - 您没有指定返回类型,因此它向客户端返回 204(无内容)。无效的 GET
方法确实没有多大意义,应该避免,或者转换为另一个 HTTP 动词(如 POST)。
就主题而言,这不是设置来自 JAX-RS 调用的响应状态的正确方法。你应该使用 ResponseBuilder相反。
Response.status(202).build();
当然,您可以将注入(inject)的 HttpServletResponse
用于任何其他事情,只要它在调用的上下文中有意义即可:
response.setHeader("Location", "http://www.example.com/myresource/5");
关于java - (@Context HttpServletResponse 响应在 resteasy 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167901/