मेरे पास http पर जावा क्लाइंट के लिए टॉमकैट सर्वर स्ट्रीमिंग डेटा है। यह एक फ़ाइल से बाइट्स को एक सर्वलेट में HTTPServletResponse के आउटपुटस्ट्रीम में कॉपी कर रहा है।यदि कोई टॉमकैट सर्वर "क्लाइंट निरस्त" कहता है, और ग्राहक "समयपूर्व ईओएफ" कहता है, जो सही है?
एक क्लाइंट डेटा कनेक्ट करने और पढ़ने के लिए HttpURLConnection का उपयोग करता है।
कभी-कभी सब ठीक है, अन्य बार ग्राहक और सर्वर दोनों अपवाद फेंक देते हैं।
क्लाइंट का कहना है कि "समयपूर्व ईओएफ" है।
सर्वर "क्लाइंटएबॉर्ट अपवाद" का दावा करता है।
उपरोक्त में से केवल एक नहीं है?
ग्राहक:
java.io.IOException: Premature EOF
at sun.net.www.http.ChunkedInputStream.fastRead(ChunkedInputStream.java:234)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:662)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2669)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2664)java.io.IOException: Premature EOF
at sun.net.www.http.ChunkedInputStream.fastRead(ChunkedInputStream.java:234)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:662)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2669)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2664)
सर्वर:
ClientAbortException: java.io.IOException
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
...
Caused by: java.io.IOException
at org.apache.coyote.ajp.AjpAprProcessor.flush(AjpAprProcessor.java:1223)
at org.apache.coyote.ajp.AjpAprProcessor$SocketOutputBuffer.doWrite(AjpAprProcessor.java:1310)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
... 23 more
यदि आप लगातार इस मुद्दे को पुन: उत्पन्न कर सकते हैं, तो नेटवर्क निगरानी उपकरण जैसे वायरसहार्क का उपयोग करने पर विचार करें, जो आपको यह देखने देगा कि –