2012-02-17 22 views
6

मैं वर्तमान में जेबॉस एएस 4.3 पर एक विरासत जेएसएफ आवेदन चला रहा हूं। मेरा मानना ​​है कि यह जेएसएफ 1.2 लागू करता है। हालांकि, जब मैंने चेहरे-कॉन्फ़िगरेशन को देखा, तो मैंने देखा कि यह जेएसएफ 1.1 डीटीडी का उपयोग कर रहा था।जेएसएफ संस्करण क्या निर्देशित करता है? कंटेनर या चेहरे-कॉन्फ़िगरेशन?

जेएसएफ का कौन सा संस्करण मैं उपयोग कर रहा हूं?

उत्तर

12

सटीक जेएसएफ कार्यान्वयन संस्करण जानकारी जेएसएफ कार्यान्वयन जेएआर फ़ाइल की /META-INF/MANIFEST.MF फ़ाइल में उपलब्ध है। यह आमतौर पर मैनिफ़ेस्ट फ़ाइल के तल के पास स्थित इस प्रकार है:

Implementation-Title: Mojarra 
Implementation-Version: 1.2_12-b01-FCS 
Implementation-Vendor: Sun Microsystems, Inc. 

एक जार फ़ाइल एक ज़िप उपकरण के साथ खोला जा सकता है। सूर्य आरआई/मोजाररा के मामले में, फ़ाइल नाम jsf-impl.jar है, कभी-कभी jsf-impl-1.2_12-b01-FCS.jar जैसे सटीक संस्करण संख्या के साथ पहले ही प्रत्यय हो जाता है। यदि आप जेबॉस 4.3.x द्वारा जेएसएफ कार्यान्वयन का उपयोग कर रहे हैं, तो आप $JBOSS_HOME/server/<Profile>/deploy/jboss-web.deployer/jsf-libs फ़ोल्डर में फ़ाइल पा सकते हैं। यदि आपने /WEB-INF/lib में अपना स्वयं का जेएसएफ कार्यान्वयन प्रदान किया है और इसके बजाय जेबॉस को इसका उपयोग करने के लिए web.xml कॉन्फ़िगर किया है, तो आपको इसके बजाय /WEB-INF/lib में दिए गए एक में इसकी जांच करनी होगी। ,

Package jsfPackage = FacesContext.class.getPackage(); 
String implTitle = jsfPackage.getImplementationTitle(); 
String implVersion = jsfPackage.getImplementationVersion(); 
String implVendor = jsfPackage.getImplementationVendor(); 

faces-config.xml के रूप में इसके साथ आप भी क्या JSF संस्करण आवेदन के लिए बनाया गया है नियंत्रित कर सकते हैं:

या, आप बस इसे प्रोग्राम के रूप में प्राप्त कर सकते हैं। तो यदि आपने घोषणा की है कि यह जेएसएफ 1.1 spec अनुरूप है, तो एक जेएसएफ 1.2/2.0 कार्यान्वयन जेएसएफ 1.1 "संगतता मोडस" में भी चलाया जाएगा। लेकिन जब आप एक JSF 1.1 कार्यान्वयन का उपयोग कर वास्तव में हैं तो आप जेएसएफ 1.2/2.0 जैसे एक नए संस्करण की घोषणा नहीं कर सकते हैं। यह या तो त्रुटि या अनदेखा किया जाएगा।