क्या जावा ईई एप्लिकेशन को प्रारंभ करने से रोकने के लिए कोई तरीका है यदि अनुप्रयोग प्रारंभ के दौरान कोई अपवाद होता है? मैं मूल रूप से अनुप्रयोग को प्रारंभ करने के दौरान ServletContextListener
या Singleton
Startup
बीन से हटाए गए एक अनचाहे अपवाद के बाद "j2ee.state.failed
" स्थिति (प्रति JSR-77) दर्ज करने का कारण बनने का एक तरीका ढूंढ रहा हूं।जावा ईई एप्लिकेशन स्टार्टअप विफलता
EJB specification इंगित करता है कि Singleton
बीन के प्रारंभ के दौरान कोई अपवाद होता है, तो एप्लिकेशन बिना त्रुटि के शुरू और चलाएगा; हालांकि, केवल बीन ही एक ऐसे राज्य में हो सकता है जहां इसे नहीं बुलाया जा सके। दुर्भाग्यवश, यह वह व्यवहार नहीं है जिसे मैं ढूंढ रहा हूं।
4.8.4 सिंगलटन हैंडलिंग सिंगलटन आरंभीकरण के दौरान होने वाली
त्रुटियाँ त्रुटि घातक माना जाता है और सिंगलटन उदाहरण के छोड़ना में परिणाम चाहिए। संभावित प्रारंभिक त्रुटियों में इंजेक्शन विफलता,
PostConstruct
विधि से निकाला गया सिस्टम अपवाद, या सफलतापूर्वक प्रतिबद्ध करने के लिएPostConstruct
विधि कंटेनर-प्रबंधित लेनदेन की विफलता शामिल है। यदि कोई सिंगलटन प्रारंभ करने में विफल रहता है, तो सिंगलटन परिणाम पर आमंत्रण का प्रयास धारा 3.4.3 और धारा 3.4.4 द्वारा परिभाषित अपवाद में किया गया है।
Servlet specification नहीं किसी विशेष तरह से व्यवहार करने के लिए एक कंटेनर की आवश्यकता होती है एक सा अपनी जरूरतों के मामले में और अधिक अस्पष्ट है, मालूम होता है, लेकिन केवल सुझाव दे (शब्द के प्रयोग के माध्यम से "may") है कि वेब मॉड्यूल प्रारंभ करना जारी है, लेकिन किसी भी अनुरोध के परिणामस्वरूप आंतरिक सर्वर त्रुटि होनी चाहिए। दोबारा, यह दुर्भाग्य से व्यवहार नहीं है जिसे मैं ढूंढ रहा हूं। वेब एप्लिकेशन क्यों शुरू होना चाहिए और अगर यह किसी भी अनुरोध को संभाल नहीं सकता है तो क्यों चल रहा है?
11,6 श्रोता अपवाद
कंटेनर HTTP स्थिति कोड 500 के साथ वेब अनुप्रयोग एक आवेदन त्रुटि इंगित करने के लिए करने के लिए बाद के सभी अनुरोधों का जवाब हो सकता है।
मेरे अनुभव में, मैंने देखा है कि एप्लिकेशन सर्वर इस आवश्यकता को अलग-अलग संभालते हैं। कुछ कंटेनर वास्तव में इन मामलों में एप्लिकेशन को शुरू करने से रोक देंगे, जबकि अन्य विनिर्देशों में सुझाए गए अनुसार 500 अपवादों के साथ अपवाद को दबाएंगे और अनुरोधों का जवाब देंगे।
क्या मैं विनिर्देश के किसी भी भाग को देख रहा हूं जो किसी प्रारंभिकरण के दौरान अपवाद होने पर एप्लिकेशन को प्रारंभ करने से रोक देगा?
+1 पर शुरू करने के लिए पूरे एप्लिकेशन (कान) को रोकता है; अच्छा प्रश्न। यह मेरा अनुभव भी है - वे इसे अलग-अलग करते हैं ... – home