flex and jsf access the same instance of bean -
मैं jsf-icefaces ऐप में एक फ्लेक्स ऐप को एकीकृत करता है (बर्फ के साथ jspx साइट में: outputmedia-tag) और चाहते हैं एक फसल से एक बीन के समान उदाहरण तक पहुंचने के लिए, जेएसएफ इंजेक्ट।
मैं पहले से ही ब्लेज़ के साथ जावा-बीन से जुड़ा हुआ हूं यह बीन - अन्य सभी बीन्स की तरह- जेएसएफ के इंजेक्शन के द्वारा अन्य बीन्स प्राप्त करें, लेकिन जब मैं रिमोट से फ्लेक्स से सेम का उपयोग करता हूं तो इंजेक्शन सेम (जैसे कि स्थानीयआधारक और एक्सेमैनेजर, दोनों सत्र स्कॉड) को पकड़ नहीं सकते हैं और मैं इससे कनेक्ट नहीं हो सकता जेएसएफ सत्र (FacesContext.getCurrentInstance () शून्य है)। ऐसा इसलिए है क्योंकि फ्लेक्स सेम के एक नए उदाहरण का निर्माण होता है और यह वही वर्तमान उदाहरण नहीं होता है, जेएसएफ इंजेक्ट करते हैं, मुझे लगता है।
मैं जावा में एक नई इकाई प्रबंधक बनाकर फ्लेक्स से डेटाबेस से कनेक्ट कर सकता हूं बीन, लेकिन यह वही नहीं है जो मैं चाहता हूँ, क्योंकि यह एक और इकाई प्रबंधक है ... मैं वही रहना चाहता हूं और एक्सेसमैनेजर-बीन पर डेटा प्राप्त करना चाहता हूं।
मुझे एक्स्टेला फिजी और फ्लेमिंगो पता है, लेकिन मैं काम नहीं कर सकता फिजी के साथ, क्योंकि मेरे जेएसएफ एप्लिकेशन में आइसफ़ेस घटकों को शामिल किया गया है और फिर यह अमीरों के साथ काम नहीं करता है जो फिजी की जरूरत है। और फ्लेमिंगो केवल जेब्स सीम और वसंत के साथ काम करते हैं। क्या यह सही है?
मैंने वसंत-फ्लेक्स-एकीकरण के बारे में भी पढ़ा है, लेकिन जेएसएफ आवेदन वसंत के साथ नहीं बना था और मैं इस तरह के एक बड़े जेएसएफ ऐप में वसंत को एकीकृत नहीं करना चाहता। कल मैंने फ्लेक्सफिटर इंटरफ़ेस के बारे में पढ़ा। इस इंटरफ़ेस को मुझे अपने फैक्टरी में कार्यान्वित करना होगा और इसे फ़ैक्टरी के रूप में सेवा-कॉन्फ़िग.एमएमएल ब्लजीज़ में सेट करना होगा। मैं अभी भी अपनी फैक्टरी को लागू करता हूं, लेकिन मुझे केवल सर्वलेट प्रसंग पर आवेदन दिया गया है जो कि फ्लेक्सकॉन्टेक्स .getServletContext () पर मिलता है। GetAttribute ("बीन"); और नहीं सत्र scoped बीन्स ...
मुझे आशा है कि फेंक और jsf फेंक कनेक्ट करने का एक मौका है ... धन्यवाद!
FacesContext.getCurrentInstance () शून्य है
यह केवल तभी होगा जब वर्तमान अनुरोध नहीं को FacesServlet
के माध्यम से पारित किया गया है। दूसरे शब्दों में, अनुरोध यूआरएल url-pattern
से FacesServlet
से मेल नहीं खा रहा था। यह थ्रेडलोकल FacesContext
उदाहरण बनाने के लिए जिम्मेदार है।
लेकिन आपको वास्तव में FacesContext
की आवश्यकता नहीं है जेएसएफ के रूप में सिर्फ सर्लेट एपीआई के शीर्ष पर चलता है, आप कम स्तर तक जा सकते हैं और सत्र का प्रबंधन करने के लिए प्रबंधित बीन को प्राप्त कर सकते हैं। जेएसएफ स्टोर्स सत्र ने प्रबंधन बीन्स को एचटीटीपी सत्र
की कुंजी के रूप में प्रबंधित बीन नाम के गुण के रूप में दबदबा दिया।
इस प्रकार, यदि आप उदाहरण के लिए प्रबंधित बीन के नाम से एक सत्र का प्रबंधन करते हैं myBean
और आपके पास HttpServletRequest
आपके हाथों में है, तो आप इसे निम्न प्रकार से भी एक्सेस कर सकते हैं:
MyBean myBean = (MyBean) अनुरोध । .getSession () getAttribute ( "myBean");
Comments
Post a Comment