पर लिखते समय फेंक दिया जाता है I ग्रहण आरएपी (रिच अजाक्स प्लेटफार्म 1.3.2) और जावा संस्करण 1.5 के भीतर जेट्टी 6.1.23 का उपयोग कर रहा हूं। मैं ब्राउज़र में एक पीएनजी छवि भेज रहा हूँ।org.mortbay.jetty.EofException को
सर्वर साइड:
response.setContentType(application.getMimeType(".png"));
response.setContentLength(outputSize);
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Max-Age", 0);
ServletOutputStream servletoutputstream = response.getOutputStream();
servletoutputstream.write(imageBytes); // this throws EofException
servletoutputstream.flush();
ग्राहक के पक्ष: ये है कि मुसीबत खड़ी कर रहे हैं कोड के टुकड़े हैं
<img src="path to the servlet that is loading the image">
बात यह है कि कि इस समस्या को हर समय नहीं होता है अजीब है। उत्पादन में चले जाने के बाद यह अंतःक्रियात्मक होता है। हमारे परीक्षण पर्यावरण में कोई समस्या नहीं थी। उत्पादन और हमारे परीक्षण पर्यावरण के बीच एकमात्र अंतर यह है कि उत्पादन वातावरण में, उपयोगकर्ता हमारे सर्वर से बहुत दूर हैं, जबकि परीक्षण पर्यावरण में, वे बहुत करीब हैं।
जब अपवाद फेंक दिया जाता है, तो छवि क्लाइंट के ब्राउज़र अंत में बिल्कुल प्रदर्शित नहीं होती है! क्या हो रहा है? इसे ठीक करने के लिए मैं क्या कर सकता हूं या कम से कम एक कामकाज कर सकता हूं?
यह पूर्ण अपवाद निशान है (मैं कुंजी अपवाद हाइलाइट किया गया):
08 Feb 2012 11:49:08,955 ERROR [[email protected]] plugin.sda -
org.mortbay.jetty.EofException
at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:789)
at org.mortbay.jetty.AbstractGenerator$Output.flush(AbstractGenerator.java:568)
at org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:1006)
at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:650)
at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:590)
at com.scotiabank.ebss.common.viewer.util.ViewerUtil.sendBytes(ViewerUtil.java:533)
at com.scotiabank.ebss.common.viewer.servlets.ViewerServlet.doGet(ViewerServlet.java:242)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.writev0(Native Method)
at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:61)
at sun.nio.ch.IOUtil.write(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.write0(SocketChannelImpl.java:393)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:416)
at java.nio.channels.SocketChannel.write(SocketChannel.java:375)
at org.mortbay.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:232)
at org.mortbay.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:211)
at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:712)
... 27 more
अपवाद निरक्षर है। वास्तविक समस्या 'टूटी हुई पाइप' है, जिसमें ईओएफ के साथ कुछ भी करने का कोई अधिकार नहीं है। – EJP