java - (@Context HttpServletResponse 响应在 resteasy 中不起作用

标签 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 方法。它也无法通过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/

相关文章:

web-services - 使用 'postman' Chrome应用程序的Soap请求主体

java - 当你增加一个整数超过它的最大值时会发生什么?

java - 使用 SwingWorker java 在线程池中等待任务

java - 在进行字符识别(tesseract)之前使用 OpenCV 进行图像预处理

java - 如何在opengl中旋转3d空间中的单个形状?

java - 当用户 session 过期时,如何使用java更新数据库行?

java - 如何将字符串数组从jsp发送到servlet类

security - https页面访问非https资源

PHP 非持久进程设计 vs Python/Java

python - 命名一些使用 IronPython 和 Silverlight 编写的重要站点