Java 这是返回204“的正确方式吗?”;“无内容”;使用弹簧?

Java 这是返回204“的正确方式吗?”;“无内容”;使用弹簧?,java,weblogic12c,spring-web,Java,Weblogic12c,Spring Web,我正在尝试使用Weblogic删除资源设置http statusNO_CONTENT,响应需要30秒才能完成。我是误用了Spring还是Weblogic中有bug 我已经使用Spring5.0.12在WebLogic12.2.1.0.0上尝试过这个。请求完成,资源被删除,但客户端在此之后等待30秒(浏览器TTFB)。这似乎是一种超时 作为一种解决方法,我们可以返回http状态OK @DeleteMapping(value=“/{id}”) 公共响应删除(@PathVariable(“id”)长i

我正在尝试使用Weblogic删除资源设置http statusNO_CONTENT,响应需要30秒才能完成。我是误用了Spring还是Weblogic中有bug

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

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

@DeleteMapping(value=“/{id}”)
公共响应删除(@PathVariable(“id”)长id){
useCase.remove(id);
返回新的响应属性(HttpStatus.NO_内容);
}

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

与200响应相比,您的204响应没有标题。尝试手动添加它,以查看它是否有助于应用程序服务器处理空响应正文:

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

您还可以使用
@ResponseStatus
注释

@DeleteMapping(value = "/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public ResponseEntity<Void> delete(@PathVariable("id") Long id) {}
@DeleteMapping(value=“/{id}”)
@ResponseStatus(HttpStatus.无内容)
公共响应属性删除(@PathVariable(“id”)长id){}

这是OHS的已知错误。

错误行为是:插件一直在等待内容主体,204没有主体,最后它触发读取超时(这是30秒以上)


您需要下载修补程序并应用于OHS,或者更改HTTP代码作为解决方案,可能是202(已接受)。

返回OK时也需要30秒?返回404的更流畅的方法是
返回ResponseEntity.noContent().build()。但就得到404响应而言,您所做的是正确的。@jhamon否。当我返回OK时,它会立即响应。您能显示您在200和204响应上得到的响应标题吗?您是否在
@Controller
级别将
@RequestMapping
products
一起使用来强制默认响应正文格式?呃,我的意思是上面提到的204,现在编辑我的评论已经太晚了。但是调用
.noContent()
是获得正确
响应的正确方法。谢谢!我将向基础架构团队展示此补丁。此补丁适用于12.1.3.0.0及更高版本。12.2.1.0.0是当前版本。所以这个补丁已经被应用了。我们查过了。也许apache服务器也在这样做。