ConfigureListener
सामान्य रूप से Mojarra कार्यान्वयन JAR फ़ाइल की फ़ाइल के माध्यम से स्वचालित रूप से पंजीकृत होता है। इसके अतिरिक्त, ConfigureListener
एक पुराने ग्लासफ़िश v3 बग (नोट: v3, 3.0.x नहीं, इस प्रकार वास्तव में वह पहला जीएफ 3 संस्करण) को हल करने के लिए सर्वलेट 3.0 ServletContainerInitializer
के माध्यम से स्पष्ट रूप से पंजीकृत है।
ऐसी स्थितियां मौजूद हैं जिनमें .tld
फ़ाइल के माध्यम से स्वत: पंजीकरण अपर्याप्त है। प्रसिद्ध व्यक्ति तब होता है जब वेबपैप Jetty पर तैनात किया जाता है। यह इस क्यू & ए: could not find Factory: javax.faces.context.FacesContextFactory में विस्तार से समझाया गया है।
इसके अलावा, जैसा कि पहले और उस विस्तृत उत्तर में बताया गया है, ग्लासफ़िश v3 में एक बग है जिसमें टीएलडी फ़ाइल बहुत देर हो चुकी है और इस प्रकार जेएसएफ सही समय पर अपनी आवश्यक प्रारंभिक चीज़ नहीं कर सका। इसके बाद आपको वेबपैप web.xml
में ConfigureListener
को स्पष्ट रूप से पंजीकृत करने की आवश्यकता होगी।
लेकिन अगर यह आपके लिए काम करता है तो यह web.xml
में स्पष्ट रूप से पंजीकृत नहीं है, तो बस इसे बाहर रखें। web.xml
में कम शोर बेहतर है। लेकिन यदि आप संभावित रूप से उल्लिखित समस्या के प्रति संवेदनशील कंटेनर पर तैनात होते हैं (इसलिए जब आपका वेबपैप वास्तव में सार्वजनिक रूप से वितरित होता है और आपके पास लक्षित कंटेनर की पसंद पर कोई नियंत्रण नहीं होता है), तो आप इसे बेहतर तरीके से "मामले में रखेंगे उस"।
अद्यतन: ऐसा लगता है कि बिलाव 8.x गाड़ी व्यवहार से पता चलता है जब इस प्रविष्टि web.xml
में सक्षम किया गया है: इस श्रोता वास्तव में दो बार केवल एक बार के बजाय निष्पादित किया जाएगा। नतीजा विनाशकारी है: दूसरों के बीच, सभी जेएसएफ कार्यक्रम श्रोताओं को दो बार पंजीकृत किया जाएगा और घटक पुस्तकालयों को दो बार लोड किया जाएगा। यह केवल रनटाइम के दौरान संघर्ष के लिए जाता है। दूसरे शब्दों में, जब टोमकैट पर तैनाती करते हैं, तो सुनिश्चित करें कि यह प्रविष्टि web.xml
से हटा दी गई है।
इस के लिए देखें http://www.coderanch.com/t/428264/JSF/java/function-listener-sun-faces-config – Willmore