2016-09-19 3 views
6

StreamingOutputOutputStreamは実装クラスによって閉じられるべきですか?JAX-RS StreamingOutputのOutputStreamを閉じる

java-docは推奨していません。私はちょうど閉鎖するべきではないことを意味する基礎となるServletOutputStreamに委任していると思いますが、私の推測は間違っているかもしれません:)また、javadocは、出力ストリームが閉じられてはならないと明言されているMessageBodyWriterインターフェイスへの参照を作成します。私はリファレンス実装であることジャージのソースで見ていた決定的な答えを見つけることができない

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

+0

私はあなたがそれを閉じる必要がありますとは思いません。出力ストリームを閉じると、下流にフィルタやインターセプタが壊れる可能性があります。 – sinu

答えて

6

。ジャージーでは、StreamingOutputは、MessageBodyWriterに渡され、osMessageBodyWriterに渡された場合、streamingOutput.write(os) [1]を単に呼び出すことによって処理されます。そのjavadocは、このOutputStreamは、を閉じてはいけません。

要約すると:StreamingOutputに渡されたOutputStreamは閉じてはいけません。

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

関連する問題