मेरे पास क्लाइंट एक सर्वर से अनुरोध कर रहा है जिसमें जवाब देने में कुछ समय लग सकता है।रीसेट सर्वर सॉकेट टाइमआउट
कनेक्शन टूट गया था:
सर्वर उत्तर देने के लिए यह निम्न अपवाद फेंक दिया गया था चाहता था जब। यह शायद ग्राहक द्वारा बंद कर दिया गया था।
org.eclipse.jetty.http.AbstractGenerator.blockForOutput पर org.eclipse.jetty.io.nio.SelectChannelEndPoint.blockWritable (SelectChannelEndPoint.java:435) पर org.eclipse.jetty.io.EofException (AbstractGenerator.javaox12) org.eclipse.jetty.server.HttpOutput.write (HttpOutput.java:159) org.eclipse.jetty.server.HttpOutput.write (HttpOutput.java:101) सूर्य पर। sun.nio.cs.StreamEncoder.implWrite (StreamEncoder.java:282) पर sun.nio.cs.StreamEncoder.write (StreamEncoder.java:125) पर nio.cs.StreamEncoder.writeBytes (StreamEncoder.java2121) sun.nio.cs.StreamEncoder.write (StreamEncoder.java:135) पर java.io.OutputStreamWriter.write (आउटपुटस्ट्रीमवाइटर.जावा 2020) java.io.Writer.write (Writer.java:157) org.restlet.representation.StringRepresentation.write (StringRepresentation.java3737) पर org.restlet.representation.CharacterRepresentation.write (CharacterRepresentation.java:76) org.restlet.engine.adapter.ServerCall.writeResponseBody (ServerCall.java:509) पर org.restlet.engine.adapter पर पर .ServerCall.sendResponse (ServerCall.java:453) org.restlet.ext.jetty.internal.JettyCall.sendResponse (JettyCall.java:312) पर org.restlet.engine.adapter.ServerAdapter.commit पर (ServerAdapter । जावा: 196) org.restlet.engine.adapter.HttpServerHelper.handle (HttpServerHelper.java:153) पर org.restlet.ext.jetty.JettyServerHelper $ WrappedServer.handle (JettyServerHelper.java:170) पर पर org.eclipse.jetty.server.AbstractHttpConnection.handleRequest (AbstractHttpConnection.java:452) org.eclipse.jetty.server.AbstractHttpConnection.content (AbstractHttpConnection.java:894) पर org.eclipse.jetty.server पर .AbstractHttpConnection $ RequestHandler.content (AbstractHttpConnection.java:948) org.eclipse.jetty.http.HttpParser.parseAvailable पर org.eclipse.jetty.http.HttpParser.parseNext (HttpParser.java:943) पर (HttpParser.java : 235) org.eclipse.jetty.server.AsyncHttpConnection.handle (AsyncHttpConnection.java:77 पर ) org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle (SelectChannelEndPoint.java:622 पर ) पर ऑर्ग .eclipse.jetty.io.nio.SelectChannelEndPoint org.eclipse पर org.eclipse.jetty.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:603) पर $ 1.run (SelectChannelEndPoint.java:46) । jetty.util.thread.QueuedThreadPool $ 3.run (QueuedThreadPool.java:538) java.lang.Thread.run (Thread.java:722) पर
जब ऐसा होता है, तो क्लाइंट अनिश्चित काल तक लटकता है।
यहाँ एक कोड उदाहरण जो समस्या पुनरुत्पादित करता है:
सर्वर साइड:
public static void main(String[] args) throws Exception {
Context context = new Context();
Server server = new Server(context, Protocol.HTTP, 8182, DummyServerResource.class);
server.start();
}
public class DummyServerResource extends ServerResource {
@Get
public String retrieve() throws InterruptedException {
Thread.sleep(1000 * 20);
return "Dummy";
}
}
क्लाइंट साइड:
public static void main(String[] args) throws IOException, InterruptedException {
Context context = new Context();
context.getParameters().add("maxIoIdleTimeMs", "0");
Client client = new Client(context, Protocol.HTTP);
ClientResource cr = new ClientResource("http://localhost:8182");
cr.setNext(client);
Representation get = cr.get();
System.out.println(get.getText());
Thread.sleep(1000 * 50);
ClientResource cr2 = new ClientResource("http://localhost:8182");
cr2.setNext(client);
Representation get2 = cr2.get();
System.out.println(get2.getText());
}
यहाँ क्या हो रहा है और मैं त्रुटि कैसे खत्म करने है ?