2017-12-06 6 views
1

:第二readEntity(上ResponseでreadEntityを2回呼び出す方法は?その結果は何私が今やっている

java.io.IOException: stream is closed 

)それは最初の読み取り後のストリームをクローズするので。

Response response = target.queryParam("start", startIndex) 
    .queryParam("end", end) 
    .request() 
    .accept(MediaType.APPLICATION_XML) 
    .header(authorizationHeaderName, authorizationHeaderValue) 
    .get(); 

String xml = response.readEntity(String.class); 
ourLogger.debug(xml); 


MyClass message = response.readEntity(MyClass.class); //throws IOException 
+0

最後の投稿に自分のコメントが表示されませんでしたか?応答でbufferEntity()を呼び出してみてください –

+0

申し訳ありませんが、私はこれを投稿するまであなたのコメントを見ませんでした。あなたのソリューションは機能します。あなたがこの質問の答えとしてそれを置くなら、私はそれをアップヴォートし、それを正しいものとして選ぶでしょう。 – jwils

答えて

3

をあなたは、エンティティ・ストリームを複数回読み取ることができるようになりますResponse#bufferEntity()を、使用することができます。ここでは

は私がやっているものです。

Response response = ... 
response.bufferEntity(); 
String s = response.readEntity(String.class); 
MyEntity me = response.readEntity(MyEntity.class); 
response.close(); 
+0

これは機能します。ありがとうございました。 – jwils

関連する問題