2010-12-09 11 views
5

पर खुद त्रुटि पृष्ठ दिखाने के लिए UrlMappings.groovy में, मैं "500"(controller:'error', action:'error') निर्धारित किया है ताकि अपने ही त्रुटि नियंत्रक (और देखें) किया जाता है।कैसे grails कॉन्फ़िगर करने के लिए हमेशा स्थिति 500 ​​

यह आमतौर पर काम करता है, लेकिन जब मैं (1MB आकार के साथ एक पैरामीटर प्रस्तुत करने) अनुरोध इनपुट के साथ छेड़छाड़ की कोशिश की, मैं एक बिलाव HTTP स्थिति 500 ​​

पहले से त्रुटि पृष्ठ उत्पन्न मैंने सोचा था कि इस त्रुटि केवल जनरेट किया गया था मिल गया टोमकैट द्वारा कि grails इसके बारे में कुछ भी नहीं कर सका, लेकिन अपवाद org.springframework.web.util.NestedServletException (नेस्टेड अपवाद java.lang.StackOverflowError) है और स्टैक ट्रेस में कई org.codehaus.groovy.grails पैक किए गए वर्ग हैं।

मुझे लगता है कि संभावित हमलावरों के लिए स्टैक ट्रेस सहित इस अपवाद को खतरनाक है, तो मैं हमेशा अपना खुद का त्रुटि पृष्ठ दिखाने के लिए grails कैसे कॉन्फ़िगर कर सकता हूं? या क्या यह केवल टॉमकैट में कॉन्फ़िगर करना संभव है?

उत्तर

3

यह संभव है कि यह एक Grails बग है। मुझे this Nabble thread मिला जो मुझे this JIRA issue पर निर्देशित करता था। उस मुद्दे को हल किया गया था, लेकिन टिप्पणियों में पीटर लेडब्रुक different JIRA issue से जुड़ा हुआ है जो आपकी समस्या हो सकती है या नहीं भी हो सकती है।

यदि ऐसा लगता है कि आपके लिए क्या हो रहा है, तो टिप्पणियों में सुझाए गए एक कार्यवाही है, जिसे here मिल सकता है। बग खुद को 1.4 में तय किया जाना निर्धारित है; उपरोक्त फिक्स वर्कअराउंड 1.3

+0

मैं ठीक करने की कोशिश करना चाहता हूं, लेकिन जब मैं "ग्रिल इंस्टॉल-प्लगइन myFolder/grails-error-pages-fix.zip" चलाता हूं, तो स्थानीय संस्करण का उपयोग करने के बजाय grails इसे ऑनलाइन देखता है। और यह मानक भंडार के माध्यम से उपलब्ध नहीं है ... यह केवल यहां github पर है: https://github.com/alkemist/grails-error-pages-fix कोई विचार है कि मैं इसे कैसे इंस्टॉल कर सकता हूं? –

+0

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

+0

मुझे अब "इंस्टॉल-प्लगइन http://download.github.com/alkemist-grails-error-pages-fix-303f215.zip" का उपयोग करके मिल गया है। लेकिन इंस्टॉलर कहने में विफल रहता है "कोई प्लगइन.एक्सएमएल डिस्क्रिप्टर नहीं मिला!" (और यह वास्तव में वहाँ नहीं है)। मुझे लगता है कि यह वास्तविक प्लग-इन नहीं है लेकिन इसे मैन्युअल रूप से प्रोजेक्ट में एकीकृत किया जाना है ... –

1

रॉब ह्रस्का के साथ सहमत है, जो कि अपने अधिकांश लिंक में फंसे हुए हैं। के रूप में grailsWebRequest सर्वलेट डिफ़ॉल्ट रूप से एक <dispatcher>ERROR</dispatcher>web.xml में सौंपा नहीं है -

मैं, भी, कि grails-त्रुटि पृष्ठों-ठीक प्लगइन इस मुद्दे को ठीक करना चाहिए संदेह है।

इस प्लगइन के साथ उपयोग की जाने वाली तकनीक मूल रूप से उसी तकनीक के समान होती है जिसे मैंने previous post में सुझाया था। (फिर भी, मेरी अपनी जांचें, जैसा कि मेरी टिप्पणियों द्वारा देखा जा सकता है, ने अभी तक लगातार निष्कर्ष निकाला नहीं है।)

अंत में, एक चीज जो किसी भी दर पर काम करेगी custom servlet Filter को लागू करना है।

+0

+1 कस्टम फ़िल्टर के लिए, मैं अपने अधिकांश अनुप्रयोगों में ऐसा करता हूं, क्योंकि यह अधिक नियंत्रण प्रदान करता है (कंटेनर को आपके लिए आपकी त्रुटियों को संभालने के विरोध में)। –

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