2013-04-05 4 views
5

मैं जावा आरएमईई का उपयोग कर अपने एक्सएमएल पार्सर के रूप में कैस्केड में आरएसएस फ़ीड की उचित मात्रा का विश्लेषण कर रहा हूं। कभी-कभी आरएसएस फ़ीड में से एक नेटवर्क समस्याओं के कारण पहुंच योग्य नहीं हो सकता है, जिसके परिणामस्वरूप XMLReader ऑब्जेक्ट (नया XMLReader (url) बनाने की कोशिश करते समय सॉकेट टाइमआउट होता है।जावा आरओएमई पार्सर डिफ़ॉल्ट सॉकेट टाइमआउट कैसे बदलें?

समस्या यह है कि डिफ़ॉल्ट टाइमआउट लगभग 2 दशकों तक चलता है और जब ऐसा होता है तो यह पूरी प्रक्रिया को धीमा कर देता है।

जावा रोम में डिफ़ॉल्ट सॉकेट टाइमआउट बदलने का कोई तरीका है?

उत्तर

6

जब आप XMLReader object (new XMLReader(url)) बनाते हैं, तो आपके पास पहले से URLConnection ऑब्जेक्ट है जो XMLReader के लिए तर्क के रूप में पारित किया गया है। URLConnection के setConnectTimeout(long) पर कॉल करें और अपना टाइमआउट मान सेट करें। मुझे नहीं लगता कि रोम कोई कनेक्शन टाइमआउट विकल्प प्रदान करता है

+0

धन्यवाद। XMLReader कन्स्ट्रक्टर को तर्क के रूप में पारित ऑब्जेक्ट वास्तव में java.net.URL ऑब्जेक्ट है, जो किसी भी सेटकनेक्टटाइमआउट विधि प्रदान नहीं करता है। असल में, मैं java.net.URL ऑब्जेक्ट को URLConnection ऑब्जेक्ट में लपेट सकता हूं और XMLReader कन्स्ट्रक्टर को पास कर सकता हूं, लेकिन फिर मुझे URLConnection ऑब्जेक्ट के लिए कनेक्ट() विधि लागू करने के लिए कहा जाता है और मुझे टोपी लगाने का कोई विचार नहीं है इसमें .. – Francesco

+1

'एक्सएमएल रीडर 'दोनों यूआरएल और यूआरएल कनेक्शन के साथ बनाया जा सकता है। http://www.jarvana.com/jarvana/view/rome/rome/0.9/rome-0.9-javadoc.jar!/com/sun/syndication/io/XmlReader.html – rajesh

+4

बहुत बहुत धन्यवाद। हल किया। \t \t \t \t \t \t \t 'URLConnection urlConnection = नया URL (rssSource) .openConnection();' '\t urlConnection.setConnectTimeout (4000),' ' पाठक = नए XmlReader (urlConnection);' ' फ़ीड = नए SyndFeedInput() .बिल्ड (पाठक); ' – Francesco

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