2017-12-06 1 views
1

Was ich jetzt tun wird, was in a:Wie wird ReadEntity bei einer Antwort zweimal aufgerufen?

java.io.IOException: stream is closed 

am 2. readEntity(), da sie den Strom nach der ersten Lese schließt. Hier

ist, was ich tue:

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

Haben Sie meinen Kommentar nicht in Ihrem letzten Post gesehen? Versuchen Sie, bufferEntity() auf die Antwort zu rufen –

+0

Sorry, ich habe Ihren Kommentar erst angezeigt, nachdem ich dies gepostet habe. Ihre Lösung funktioniert. Wenn Sie es als eine Antwort auf diese Fragen setzen, werde ich es upvote und es als richtig auswählen. – jwils

Antwort

3

Sie Response#bufferEntity() verwenden können, die Sie das Unternehmen Strom mehrmals gelesen werden können.

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

Das funktioniert. Vielen Dank. – jwils

Verwandte Themen