2011-09-15 8 views
5

मेरे पास एक जीडब्ल्यूटी एप्लीकेशन है जहां उपयोगकर्ता एप्लिकेशन के ब्राउजर आधारित पक्ष को अनिश्चित काल तक खोलते हैं। प्रत्येक बार हम एप्लिकेशन को अपग्रेड करते हैं - यदि उपयोगकर्ता ऐसा करने के बाद अपने ब्राउज़र में पुनः लोड करते हैं तो सब ठीक हो जाता है। हालांकि आमतौर पर ऐसा होता है कि वे एप्लिकेशन के पहले से ही खुले संस्करण का उपयोग करते हैं, यानी अपग्रेड से पहले एक संस्करण प्रस्तुत किया जाता है, और उसके बाद अस्पष्ट आरपीसी संबंधित त्रुटियों का अनुभव होता है क्योंकि क्लाइंट साइड जावास्क्रिप्ट अब सर्वर पर मौजूद नहीं है।जीडब्ल्यूटी - ग्राहक कैसे पता लगा सकता है कि यह जावास्क्रिप्ट आउट-ऑफ-सिंक है यदि सर्वर अपडेट किया गया है

क्या जीडब्ल्यूटी में कोई तंत्र है, जिससे आप इसका सामना करने के लिए अपने कोड में सक्षम या शामिल कर सकते हैं। मुझे स्थिति की किसी भी चालाक हैंडलिंग की आवश्यकता नहीं है, उदा। एप्लिकेशन को फिर से लोड करने और उपयोगकर्ता के वर्तमान स्थिति को पुन: स्थापित करने का प्रयास करते हुए, एक सरल संवाद बताता है कि क्लाइंट और सर्वर अब सिंक्रनाइज़ नहीं हैं और वेब एप्लिकेशन को पुनः लोड करने की आवश्यकता है।

उत्तर

4

इंटरफेस का दस्तावेज com.google.gwt.user.client.rpc.AsyncCallback<T> यह कैसे करना है इस पर एक संकेत देता है।

public void onFailure(Throwable caught) { 
    // Convenient way to find out which exception was thrown. 
    try { 
     throw caught; 
    } catch (IncompatibleRemoteServiceException e) { 
     // this client is not compatible with the server; cleanup and refresh the 
     // browser 
    } catch (InvocationException e) { 
     // the call didn't complete cleanly 
    } catch (ShapeException e) { 
     // one of the 'throws' from the original method 
    } catch (DbException e) { 
     // one of the 'throws' from the original method 
    } catch (Throwable e) { 
     // last resort -- a very unexpected exception 
    } 
    } 

आप सबसे अधिक संभावना को संभालने के लिए (पॉप अप उपयोगकर्ता संवाद) IncompatibleRemoteServiceException चाहते हैं।

1

इसे IncompatibleRemoteServiceException कहा जाता है, और Google के Communicating with a Server दस्तावेज़ीकरण में इस सहित अपवादों को कैसे संभाला जाए, इसका उल्लेख किया गया है।

+0

मुझे अब शर्मिंदा लगता है कि मैं अपने स्टैक ट्रेस को देखता हूं। मैं आमतौर पर सबसे कम कारण पर कूदता हूं और आम तौर पर रैपिंग अपवादों को अनदेखा करता हूं। यदि मैंने शीर्ष-स्तरीय अपवाद को देखा होगा तो मैंने असंगत रिमोट सेवा सेवा अपवाद देखा होगा और नाम से संकेत प्राप्त किया जा सकता है - इसके बजाय मैंने निहित SerializationException पर ध्यान केंद्रित किया है। –

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

  • कोई संबंधित समस्या नहीं^_^