2008-10-28 2 views
-1

다음과 같은 코드가 내 서블릿에 있지만 IE가 페이지를 조회하면 빈 html 페이지가 반환됩니다. StreamResult 생성자에서 response.getOutputStream()을 직접 사용하면 페이지가 잘로드됩니다. 내가 뭘 놓치고 있니?XSL Transformer를 사용하는 GZip HttpResponse

응답는 XSLTC의 TransformerFactory에서 변압기의 인스턴스 HttpServletResponse를하고 XSL의 인스턴스입니다 난 당신이 gzipOut 스트림 종료되지 않은 추측거야 따라서는 외설

response.setHeader("Content-Encoding", "gzip"); 
GZIPOutputStream gzipOut = new GZIPOutputStream(response.getOutputStream()); 
Result outputResult = new StreamResult(gzipOut); 

xsl.transform(xmlSource, outputResult); 
+0

Firefox 3.x를 사용한다면 어떻게해야합니까? 그렇지 않다면, 아마도 여러분의 코드는 아래 제시된 jsight로 수정을 사용할 수 있습니다. – anjanb

답변

1

"바닥 글"정보를 보내지 않습니다.

+0

기본 응답을 마치려면 resp.getOutputStream(). close(); 작품을 원하십니까? – Adam

+0

솔직히 모르겠습니다. 그러나 다른 기술은 기본 스트림을 닫지 않고 마지막 CRC를 인쇄 할 수 있으므로 gzipOut.finish()를 호출하는 것일 수 있습니다. GzipOutputStream이 기본 스트림에서 close를 호출하는 것을 감지 할 수 있는지 여부는 확실하지 않으므로 실제로 더 나빠질 것입니다. – jsight

-1

이 스트림에는 .finish()가 필요합니다. 플러시와 비슷하지만 다른 호출이기 때문에 Transformer는이를 사용하지 않습니다.