2010-08-11 4 views
12

अपलोड करें और Google वेब टूलकिट (मल्टीपार्ट) फॉर्म जो मेरी सर्वलेट में एक फ़ाइल पोस्ट करता है। जब सर्वलेट में त्रुटि स्थिति हो रही है तो मैं एक त्रुटि देता हूं। जब सबकुछ ठीक है तो मैं एक JSON स्ट्रिंग लौटाता हूं।जीडब्ल्यूटी: मल्टीपार्ट फॉर्म (फ़ाइल) से एक त्रुटि को वापस कैसे करें (और हैंडल)

... 
    response.setContentType("text/html"); 
    response.setCharacterEncoding("UTF8"); 
    response.getWriter().write(out.toString()); 

} catch (FileUploadException e) { 
    response.sendError(500, e.getMessage()); 
} catch (Exception e) { 
    response.sendError(500, e.getMessage()); 
} 

समस्या यह है कि मुझे क्लाइंट पक्ष में इसे संभालने का कोई तरीका नहीं मिल रहा है। यह वह ईवेंट है जब पोस्ट ठीक हो जाता है और जब त्रुटि कोड लौटाया जाता है। लेकिन मुझे नहीं पता कि यह कैसे ठीक है या नहीं? और क्लाइंट कोड में अपवाद से मुझे एक त्रुटि संदेश कैसे प्राप्त हो सकता है?

@UiHandler("form") 
void submitComplete(SubmitCompleteEvent event) 
{ 
    ... 

Debug http://www.stackoverflow.com.s3.amazonaws.com/FormSubmitCompleteEvent.png

+0

आप * डिफ़ॉल्ट त्रुटि दस्तावेजों (आपके सर्वर की कॉन्फ़िगरेशन में) को ओवरराइड कर सकते हैं ताकि वे आउटपुट हो सकें, उदाहरण के लिए, स्टेटस कोड - प्रतिक्रिया में "500" खोजना आसान होगा, फिर पूरे डिफ़ॉल्ट को पार्स करें त्रुटि पृष्ठ –

+0

@ इगोर क्लिमर: क्या केवल एक सर्वलेट के लिए सर्वर कॉन्फ़िगरेशन को बदलने योग्य है? मुझे प्रतिक्रिया कोड (200 या 500) क्यों नहीं मिल रहा है? –

+0

ठीक है, यह * अजीब है कि आपके पास 'RequestBuilder' की तरह प्रतिक्रिया कोड तक पहुंच नहीं है ... लेकिन ऐसा लगता है कि अब कुछ भी नहीं किया जा सकता है (शायद जीडब्ल्यूटी के बग ट्रैकर पर एक नया मुद्दा/सुधार बनाएं?) जीडब्ल्यूटी के समूह से दो संबंधित धागे: http://groups.google.com/group/google-web-toolkit/browse_thread/thread/cae1d99222fec795/65308c382ff86baa और http://groups.google.com/group/google-web- टूलकिट/browse_thread/धागा/bfb422f1c6e9d0c3/c641b1369217e5ce। ऐसा लगता है कि यह सभी टेक्स्ट पर काम करता है यह सुनिश्चित करने के लिए 'टेक्स्ट/एचटीएमएल' पर आपकी प्रतिक्रिया का सामग्री-प्रकार सेट करना महत्वपूर्ण है (भले ही इसमें वास्तव में JSON हो)। –

उत्तर

5

वर्तमान में, किसी उपयुक्त विधि (Response के getStatusCode) की तरह उपलब्ध हो प्रतीत नहीं होता है। आपको SubmitCompleteEvent.getResults() में आपके सर्वर पर आने वाले त्रुटि दस्तावेज़ों के साथ करना होगा। आप अपने सर्वर पर कस्टम त्रुटि दस्तावेज़ों को सेट करके यह कार्य आसान बना सकते हैं (जो आपको अपने उत्पादन सर्वर के लिए किसी भी तरह से करना चाहिए) जो पार्स/हैंडल करना आसान है।

जीडब्ल्यूटी के Google समूह पर संबंधित धागे: one और two

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