2012-06-21 18 views
9

मैं GWT and OSGi+PAX-Web के साथ किसी समस्या के समाधान का शोध कर रहा हूं। विशेष समस्या यह है कि GWT क्रमबद्धता नीति फ़ाइल लोड, निम्न त्रुटि दे रही है नहीं कर सकता है:कैसे जीडब्ल्यूटी आरपीसी धारावाहिक नीति फाइलों को लोड करता है?

ERROR: The serialization policy file '/ctx/ctx/6ExxxxxxxxxxxxxxxxF.gwt.rpc' was not found; did you forget to include it in this deployment?

समस्या विषुव OSGi और PAX-वेब के बीच कहीं है।

समाधान खोजने के लिए, मैं बेहतर ढंग से समझना चाहता हूं कि जीडब्ल्यूटी-आरपीसी धारावाहिक नीति फ़ाइलों को कैसे लोड कर रहा है।

  • उनकी जीवन चक्र क्या है? वे कब लोड होते हैं? (मुझे लगता है कि यह सर्वर स्टार्टअप पर है। जीवन चक्र में कोई विशेषताओं? पुनः लोड करें?)
  • कैसे GWT इस फ़ाइल को अपने ढेर में लोड करता है? अनुरोध के कॉल स्टैक में किस बिंदु पर? जीडब्ल्यूटी जानता है कि उन्हें कहां से लोड करना है? क्या मैं जीडब्ल्यूटी को बता सकता हूं कि इसे इस फाइल को देखना चाहिए?

(अस्वीकरण: मैं उत्पन्न फ़ाइलों [2] पर gwt डॉक्स पढ़ा है मैं और अधिक निम्न स्तर के विवरण के लिए देख रहा हूँ। मैं अपने छापों कि त्रुटि हम कर रहे हैं HttpContext से निपटने के लिए है है। getResource())

उत्तर

11

यह सब RemoteServiceServlet में है।

What is their lifecycle? When are they loaded? (I see it's on server startup. Any particularities in the lifecycle? Reload?)

वे पहली बार उपयोग पर लोड कर रहे हैं (पहली अनुरोध प्राप्त हुआ है) और, सर्वलेट के एक क्षेत्र में कैश तो उनके जीवन चक्र सर्वलेट ही में से एक से जुड़ा हुआ है।

How GWT loads this file in its stack? At what point in the call stack of a request? How does GWT knows where to load them from? Can I tell GWT where it should look for this file?

servlet.getServletContext().getResourceAsStream। आप इसे doGetSerializationPolicy (जैसा कि जावाडॉक में कहा गया है) को ओवरराइड करके इसे कस्टमाइज़ कर सकते हैं।
फ़ाइल का नाम (संसाधन URL) अनुरोध के पथ और X-GWT-Permutation अनुरोध शीर्षलेख से बनाया गया है।

+1

पॉइंटर्स के लिए धन्यवाद। अच्छी चीज़। रिकॉर्ड के लिए, यहां स्रोत का लिंक है। यह संदर्भ के रूप में मदद कर सकता है: http://code.google।com/p/google-web-toolkit/स्रोत/ब्राउज़/ट्रंक/उपयोगकर्ता/src/com/google/gwt/user/server/rpc/RemoteServiceServlet.java? spec = svn5045 और r = 5045 – maasg

+0

यह GWT-PhoneGap के साथ कैसे काम करता है रिमोट लॉगिंग? अनुरोध किया गया '' .gwt.rpc'' फोन पर https://code.google.com/p/gwt-phonegap/wiki/LoggingModule है। क्या मुझे इसे सर्वर पर कॉपी करना है या जीडब्ल्यूटी इसे किसी भी समय भेज देगा। – confile

4

मैंने अपनी ईएआर फ़ाइल में .rpc फ़ाइल की तलाश की और पाया कि फ़ाइल नाम त्रुटि से अलग था।

समाधान: ब्राउज़र कैश साफ़ और ताज़ा किया गया।

+0

तो शायद आपके पास एक अलग मुद्दा था। – maasg

+0

मुझे संदेह है कि यह उन लोगों के लिए समाधान है जिनके पास यह समस्या है। –

+0

+1 यहां मेरे लिए ऐसा लगता है कि हमें एप्लिकेशन अपडेट के बाद क्लाइंट से ताजा संसाधन प्राप्त करने के लिए कहने का तरीका ढूंढना चाहिए। –

4

उत्तर दिया गया कि मेरे निक ने मेरे लिए काम किया।

मेरा वेब ऐप लंबे समय तक कुछ कक्षाओं के साथ चल रहा था।

बाद में मैंने सर्वर पर नए वर्गों को शामिल किया है और जब मैं वेब अनुप्रयोग प्रारंभ करने का प्रयास, यह मेरे निम्न त्रुटि दे रहा था:

त्रुटि: क्रमबद्धता नीति फ़ाइल '/ newapp/C3055CD048198D732D03CA6901E503 86.gwt । आरपीसी 'नहीं मिला था; क्या आप इसे इस तैनाती में शामिल करना भूल गए?

चेतावनी: SerializationPolicy मॉड्यूल के लिए 'C3055CD048198D732D03CA6901E5038 6' ': //10.10.1.23: http 9200/newapp /' प्राप्त करने में विफल; एक विरासत, 1.3.3 संगत, क्रमबद्धता नीति का उपयोग किया जाएगा। परिणामस्वरूप आप SerializationExceptions का अनुभव कर सकते हैं।

फिर मैंने ऐप को गुप्त विंडो में शुरू कर दिया है, जो कैश को साफ़ करता है और यह मेरे लिए काम करता है।

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