2017-06-22 19 views
5

में अप्रत्याशित प्रतिक्रिया 408 लॉग मैं जावा cometd क्लाइंट का उपयोग कर रहा हूं। यह कई मिनटों से जुड़ा था, लेकिन कुछ समय बाद यह त्रुटि के बाद लॉग इन हुआ। मुझे error 408 पर क्या करना चाहिए? क्या मुझे जावा जीसी को कॉल करना, समाप्त करना, निरस्त करना या अनदेखा करना चाहिए?कॉमेड क्लाइंट साइड

java.net.ProtocolException: अप्रत्याशित प्रतिक्रिया 408 HTTP त्रुटि 408 त

वेब सर्वर (वेब ​​साइट चल रहा है) का मानना ​​है कि वहाँ

  • एक आईपी की स्थापना के बीच के समय की बहुत लंबा अंतराल हो गया है क्लाइंट के बीच कनेक्शन (सॉकेट) (जैसे आपका वेब ब्राउज़र या हमारे चेकअपडाउन रोबोट) और सर्वर और
  • उस सॉकेट पर किसी भी डेटा की प्राप्ति, इसलिए सर्वर ने कनेक्शन छोड़ दिया है।

सॉकेट कनेक्शन वास्तव में खो गया है - वेब सर्वर उस विशेष सॉकेट कनेक्शन पर timed out है। समय-समय पर ग्राहक से अनुरोध दोहराया जाना चाहिए।

BayeuxClient

public class EventHostClient extends BayeuxClient { 
     private final Logger logger = LoggerFactory.getLogger(EventHostClient.class); 

     public EventHostClient(String url, ClientTransport transport, ClientTransport... transports) { 
      super(url, transport, transports); 
     } 

     @Override 
     public void onFailure(Throwable x, Message[] messages) { 
      logger.info("Messages failed "+ x.getMessage()); 
      logger.debug("Messages failed. Reason : " + Arrays.toString(messages), x); 
     } 
} 

बढ़ाया यहाँ लॉग संदेशों

2017-06-22 17:59:37.221 [HttpClient-2123] DEBUG c.q.q.n.i.eventhost.EventHostClient - Messages failed. Reason : [{id=4681, connectionType=long-polling, channel=/meta/connect, clientId=btom76smmlh9g4dyq2fkcd61}] 
java.net.ProtocolException: Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=1012ms 
    at org.cometd.client.BayeuxClient$PublishTransportListener.onProtocolError(BayeuxClient.java:1161) [cometd-java-client-2.5.0.jar:na] 
    at org.cometd.client.transport.LongPollingTransport$TransportExchange.onResponseComplete(LongPollingTransport.java:324) [cometd-java-client-2.5.0.jar:na] 
    at org.eclipse.jetty.client.HttpExchange$Listener.onResponseComplete(HttpExchange.java:1158) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.HttpExchange.setStatus(HttpExchange.java:305) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.AbstractHttpConnection$Handler.messageComplete(AbstractHttpConnection.java:337) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:637) [jetty-http-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:133) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) [jetty-io-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) [jetty-io-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] 
2017-06-22 17:59:37.221 [HttpClient-2123] DEBUG c.q.q.n.i.sms.ChannelSubscriber - Recieved connection FAILED | {"message":{"id":"4681","connectionType":"long-polling","channel":"/meta/connect","clientId":"btom76smmlh9g4dyq2fkcd61"},"id":"4681","org.cometd.client.publishCallback":null,"exception":"java.net.ProtocolException: Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=1012ms","successful":false,"channel":"/meta/connect"} to subscriber id : 1 
2017-06-22 17:59:37.221 [pool-513-thread-1] DEBUG c.q.q.n.i.e.E.1264409962 - Connecting, transport [email protected] 
2017-06-22 17:59:37.221 [pool-513-thread-1] DEBUG c.q.q.n.i.e.E.1264409962 - Sending messages [{id=4683, connectionType=long-polling, channel=/meta/connect, clientId=btom76smmlh9g4dyq2fkcd61}] 
2017-06-22 17:59:39.221 [pool-513-thread-1] DEBUG c.q.q.n.i.e.E.1264409962 - Connecting, transport [email protected] 
2017-06-22 17:59:39.225 [pool-513-thread-1] DEBUG c.q.q.n.i.e.E.1264409962 - Sending messages [{id=4684, connectionType=long-polling, channel=/meta/connect, clientId=btom76smmlh9g4dyq2fkcd61}] 
2017-06-22 17:59:39.230 [HttpClient-2123] DEBUG c.q.q.n.i.e.E.1264409962 - State update: CONNECTED -> UNCONNECTED 
2017-06-22 17:59:39.230 [HttpClient-2123] INFO c.q.q.n.i.eventhost.EventHostClient - Messages failed Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=2009ms 
2017-06-22 17:59:39.230 [HttpClient-2123] DEBUG c.q.q.n.i.eventhost.EventHostClient - Messages failed. Reason : [{id=4683, connectionType=long-polling, channel=/meta/connect, clientId=btom76smmlh9g4dyq2fkcd61}] 
java.net.ProtocolException: Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=2009ms 
    at org.cometd.client.BayeuxClient$PublishTransportListener.onProtocolError(BayeuxClient.java:1161) [cometd-java-client-2.5.0.jar:na] 
    at org.cometd.client.transport.LongPollingTransport$TransportExchange.onResponseComplete(LongPollingTransport.java:324) [cometd-java-client-2.5.0.jar:na] 
    at org.eclipse.jetty.client.HttpExchange$Listener.onResponseComplete(HttpExchange.java:1158) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.HttpExchange.setStatus(HttpExchange.java:305) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.AbstractHttpConnection$Handler.messageComplete(AbstractHttpConnection.java:337) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:637) [jetty-http-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:133) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) [jetty-io-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) [jetty-io-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] 
2017-06-22 17:59:39.230 [HttpClient-2123] DEBUG c.q.q.n.i.sms.ChannelSubscriber - Recieved connection FAILED | {"message":{"id":"4683","connectionType":"long-polling","channel":"/meta/connect","clientId":"btom76smmlh9g4dyq2fkcd61"},"id":"4683","org.cometd.client.publishCallback":null,"exception":"java.net.ProtocolException: Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=2009ms","successful":false,"channel":"/meta/connect"} to subscriber id : 1 
2017-06-22 17:59:40.231 [pool-513-thread-1] DEBUG c.q.q.n.i.e.E.1264409962 - Connecting, transport [email protected] 
2017-06-22 17:59:40.231 [pool-513-thread-1] DEBUG c.q.q.n.i.e.E.1264409962 - Sending messages [{id=4685, connectionType=long-polling, advice={timeout=0}, channel=/meta/connect, clientId=btom76smmlh9g4dyq2fkcd61}] 
2017-06-22 17:59:40.236 [HttpClient-2120] DEBUG c.q.q.n.i.e.E.1264409962 - State update: UNCONNECTED -> UNCONNECTED 
2017-06-22 17:59:40.236 [HttpClient-2124] DEBUG c.q.q.n.i.e.E.1264409962 - Processing meta connect {id=4685, successful=true, channel=/meta/connect, advice={interval=0, reconnect=retry, timeout=30000}} 
2017-06-22 17:59:40.236 [HttpClient-2120] INFO c.q.q.n.i.eventhost.EventHostClient - Messages failed Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=1010ms 
2017-06-22 17:59:40.236 [HttpClient-2124] DEBUG c.q.q.n.i.e.E.1264409962 - State update: UNCONNECTED -> CONNECTED 
2017-06-22 17:59:40.236 [HttpClient-2124] DEBUG c.q.q.n.i.sms.ChannelSubscriber - Recieved connection confirmed | {"id":"4685","successful":true,"channel":"/meta/connect","advice":{"interval":0,"reconnect":"retry","timeout":30000}} to subscriber id : 1 
2017-06-22 17:59:40.236 [HttpClient-2120] DEBUG c.q.q.n.i.eventhost.EventHostClient - Messages failed. Reason : [{id=4684, connectionType=long-polling, channel=/meta/connect, clientId=btom76smmlh9g4dyq2fkcd61}] 
java.net.ProtocolException: Unexpected response 408: [email protected]=POST//10.2.2.250:18080/cometd/connect#CONTENT(0ms)->COMPLETED(0ms)sent=1010ms 
    at org.cometd.client.BayeuxClient$PublishTransportListener.onProtocolError(BayeuxClient.java:1161) [cometd-java-client-2.5.0.jar:na] 
    at org.cometd.client.transport.LongPollingTransport$TransportExchange.onResponseComplete(LongPollingTransport.java:324) [cometd-java-client-2.5.0.jar:na] 
    at org.eclipse.jetty.client.HttpExchange$Listener.onResponseComplete(HttpExchange.java:1158) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.HttpExchange.setStatus(HttpExchange.java:305) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.AbstractHttpConnection$Handler.messageComplete(AbstractHttpConnection.java:337) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:637) [jetty-http-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.client.AsyncHttpConnection.handle(AsyncHttpConnection.java:133) [jetty-client-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) [jetty-io-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) [jetty-io-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-7.6.7.v20120910.jar:7.6.7.v20120910] 
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] 
+0

कोई समस्या कहां है? – ByeBye

+0

मुझे इस व्यवहार के कारण किसी भी प्रभाव के बारे में निश्चित नहीं है। यह मुद्दा एक प्रोटोकॉल त्रुटि है। क्या कुछ है (उदाहरण: डिस्कनेक्ट, कनेक्ट, ...) मैं 408 त्रुटि को ठीक करने के लिए कर सकता हूं। स्टैकट्रैक: ऑनप्रोटोकॉलर (BayeuxClient.java:1161 – rinjan

उत्तर

4

आपने देखा है यह एक 408 HTTP प्रतिक्रिया है के रूप में है।

क्या मुझे जावा जीसी को कॉल करना, समाप्त करना, निरस्त करना या अनदेखा करना चाहिए?

  • डिस्कनेक्ट: जैसा कि कनेक्शन का समय समाप्त किया जाता है (2009ms) तुम सच के रूप में क्लाइंट सर्वर को अपने कनेक्शन विफल डिस्कनेक्ट करने की जरूरत नहीं है और यह आपके लॉग के अनुसार पुनः प्रयास करेगा।
  • समाप्त, को अनदेखा करें: यह वास्तव में आपके व्यावसायिक तर्क पर निर्भर करता है। यदि आपको लेनदेन वापस लेना होगा आदि
  • जीसी पर कॉल करें: यह वास्तव में कुछ भी नहीं करता है।

TL.DR .: निर्णय व्यापार तर्क के रूप में हर नेटवर्क विभिन्न तरीकों से विफल हो सकता है के आधार पर किया जाना चाहिए।

+0

उत्तर के लिए धन्यवाद। हम कॉमेटेड सर्वर से क्लाइंट को संदेश भेज रहे हैं।धूमकेतु ग्राहक उन संदेशों का उपभोग करेगा और ईमेल भेजेगा।
सर्वर 408 जवाब भेजें। यह नेटवर्क विफलता सही नहीं है? – rinjan

+0

कॉल जीसी - Commetd क्लाइंट serveral HttpClients शुरू करते हैं। मैंने सोचा कि कई http क्लाइंट ठीक से जुड़े हुए हैं इसलिए वे 408 अंक का कारण बनते हैं। मैंने सोचा कि जीसी कॉलिंग उन httpclient उदाहरणों को नष्ट कर सकता है। लेकिन यह कॉमेटेड क्लाइंट httpclient ऑब्जेक्ट्स को कैसे संभालता है इस पर निर्भर करता है। – rinjan

+0

हां https://httpstatuses.com/408 यह इंगित करता है कि सर्वर कम से कम कुछ क्षणों के लिए उपलब्ध नहीं था। एक नेटवर्क त्रुटि हो सकती है और एक अनुप्रयोग अनुप्रयोग भी नहीं चल रहा है। ग्राहक को अपनी 'जीसी जड़ों' को संभालना चाहिए, जहां तक ​​मुझे पता है कि आपको इस मामले में उनकी देखभाल करने की आवश्यकता नहीं है। – Mark

1

मैंने जिथब में सवाल उठाया जहां परियोजना की मेजबानी की गई। धूमकेतु के लेखक (श्री सिमोन बोर्डेट) ने कहा कि मैं एक बहुत पुराने धूमकेतु संस्करण का उपयोग कर रहा हूं। उसने मुझे धूमकेतु 3.1.2 में अपग्रेड करने के लिए कहा। वर्तमान में हम धूमकेतु के साथ अपने ऐप को अपग्रेड कर रहे हैं।

https://github.com/cometd/cometd/issues/730

संबंधित मुद्दे