私はJersey Client v2.16を使用しています(Dropwizard 0.8.0の推移的な依存関係も使用しています)。Jersey Client閉じるInputStreamレスポンス - 実際に動作しますか?
エンティティがInputStream
として読み取られるとき、私は何とか応答の終了メカニズムに困惑します。 documentation状態:エンティティは(response.readEntity(InputStream.class)による)のInputStreamに読み込まれる場合は、InputStreamからの読み込み終わるまで
はまた、接続が開いたままになります。その場合、InputStreamまたはResponseは、InputStreamからの読み込みの終了時に手動で閉じる必要があります。私は
Response.readEntity(InputStream.class)
を、使用して応答エンティティを取得するとき
しかし、私がで終わることは壊す名前が示唆するようclose()
メソッドが呼び出されているとき、その下に何を解放しない、org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream
のインスタンスが(ありますInputStream
契約、そうかもしれない)。私は未発表であることと、ゆっくりとプールを埋める私のプールでのHTTP接続で終わる、結果として
@Override
public void close() throws IOException {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, LocalizationMessages.MBR_TRYING_TO_CLOSE_STREAM(reader.getClass()));
}
}
:これはclose()
方法です。
レスポンスへの参照を取得するのが非常に簡単ではなく、公式ドキュメントの状態がthe InputStream **or** the Response should be closed manually
であるため、物理リソースを実際にリリースするにはどうすればよいですか?これはジャージークライアントとの既知のバグであるよう