java - 这是使用 Spring 返回 204 "No Content"的正确方法吗?

标签 java weblogic12c spring-web

我正在尝试使用 Weblogic 删除资源设置 http 状态 NO_CONTENT,响应需要 30 秒才能完成。我是在滥用 Spring 还是 Weblogic 中存在错误?

我已经在 Weblogic 12.2.1.0.0 上使用 Spring 5.0.12 尝试过这个。请求完成,资源被删除,但客户端等待 30 秒(浏览器 TTFB)之后。这似乎是一种超时。

作为解决方法,我们可以返回 http 状态 OK

@DeleteMapping(value = "/{id}")
public ResponseEntity<Void> delete(@PathVariable("id") Long id) {
    useCase.remove(id);
    return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}

我希望客户端立即收到响应,但它等待了 30 秒。

最佳答案

与 200 响应相比,您的 204 响应没有 Content-Length header 。尝试手动添加它以查看它是否有助于您的应用程序服务器处理空响应主体:

return ResponseEntity.noContent().header("Content-Length", "0").build();

关于java - 这是使用 Spring 返回 204 "No Content"的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55691288/

相关文章:

java - http 请求处理后未调用 postHandle 方法

java - WebLogic 12.2.1 中的最大帖子大小

java - 带有 Hotswap 代理的 Weblogic 服务器

java - 如何通过 Java 代码执行记事本

java - 尝试使用自动生成的 ID 保留新的(非托管)实体会导致错误

java - 我们如何在 weblogic 服务器中获取历史线程转储

java - Spring Boot (1.3.5) - 默认错误 View

java - 使用 Json 请求调用 PostMapping 时出现 NoSuchMethod 错误

java - 如何在 Java 项目中设置 extJWNL?

java - 使用java将数据从数据库导入到Excel?