关闭 JAX-RS 流输出输出的输出流

2022-09-02 10:21:36

流输出输出流是否应该由实现类关闭?

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

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


答案 1

由于无法找到明确的答案,我看了一下球衣的来源是参考实现。在泽西岛,由 a 通过简单地调用 [1] 来处理,其中传递给 .这很好,因为它的javadoc很清楚这不能被关闭。StreamingOutputMessageBodyWriterstreamingOutput.write(os)osOutputStreamMessageBodyWriterOutputStream

总而言之:传递给流输出输出流不得关闭。

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


答案 2

推荐