gpt4 book ai didi

java - 关闭 JAX-RS StreamingOutput 的 OutputStream

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:46 26 4
gpt4 key购买 nike

StreamingOutputOutputStream 是否应该被实现类关闭?

java-doc 没有给出任何建议。我猜它只是委托(delegate)给底层 ServletOutputStream 这意味着它不应该被关闭,但我的猜测可能是错误的 :) 此外,javadoc 还引用了 MessageBodyWriter 接口(interface),其中明确表示不得关闭输出流。

https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/StreamingOutput.html

最佳答案

由于无法找到明确的答案,我查看了作为引用实现的 jersey 源代码。在 Jersey 中,StreamingOutputMessageBodyWriter 处理,只需调用 streamingOutput.write(os) [1] 其中 os 是传递给 MessageBodyWriterOutputStream。这很好,因为它的 javadoc 非常清楚这个 OutputStream 不能 被关闭。

总结一下:传递给 StreamingOutputOutputStream 一定不能关闭。

[1] https://github.com/jersey/jersey/blob/master/core-common/src/main/java/org/glassfish/jersey/message/internal/StreamingOutputProvider.java

关于java - 关闭 JAX-RS StreamingOutput 的 OutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com