पर फ्लश नहीं करता है, मैंने नीचे HttpResponse#flushBuffer
और PrintWriter#flush
पर Tomcat 7
पर परीक्षण किया है, लेकिन ऐसा लगता है कि प्रतिक्रिया ने उन्हें अपेक्षित तार के रूप में सामग्री को फ़्लश करने की बजाय उन्हें अनदेखा किया।टॉमकैट प्रतिक्रिया बफर
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
pw.println("say hi now");
pw.flush();
response.flushBuffer();
try {
Thread.sleep(5000);
} catch (Exception e) {
}
pw.println("say bye in 5 seconds");
}
}
ब्रोवर देरी के बाद "हाय" और "अलविदा" प्रदर्शित करता है। क्या यह एक दुर्व्यवहार है या इरादा है?
@EDIT
@Tomasz Nurkiewicz
के सुझाव के अनुसार, मैं curl
तो इस मुद्दे को चला गया था के साथ फिर से परीक्षण किया गया। ऐसा लगता है कि एक ही http प्रतिक्रिया से मानक ब्राउज़र और tcp/ip monitor
पैक small pieces of contents
पैक करें।
@EDIT 2
यह भी है कि दोनों HttpResponse#flushBuffer
और PrintWriter#flush
ड्राइव Tomcat 7
ग्राहक chunked data भेजने के लिए मनाया जाता है।
मुझे विश्वास है कि यह एक ऐप-सर्वर कॉन्फ़िगरेशन है। कृपया, [मेरी पोस्ट] देखें (http://stackoverflow.com/questions/43453508/end-to-end-reactive- स्ट्रीमिंग-restful- सेवा)। –