2010-12-10 6 views
5

मैं एक जेएसएफ 2.0 एप्लिकेशन (मोजाररा + प्राइमफेसेस) विकसित कर रहा हूं और मेवेन बिल्ड पर्यावरण का उपयोग कर रहा हूं। मेरे कस्टम कन्वर्टर्स और वैधकर्ताओं के पंजीकरण के लिए चेहरे-config.xml फ़ाइल का उपयोग करने से पहले, सब कुछ ठीक से चला गया। तब मैंने जेएसएफ 2.0 की कुछ वाक्य रचनात्मक चीनी देखी - एनोटेशन आधारित कॉन्फ़िगरेशन दृष्टिकोण। और अब मैं इसका उपयोग xml कॉन्फ़िगरेशन फ़ाइल के बजाय करना चाहूंगा। एक समस्या यह थी कि Mojarra ने मेरी एनोटेटेड कक्षाओं को स्कैन नहीं किया था। मुझे पता चला कि मुझे <faces-config ... metadata-complete="false"> विशेषता को झूठी करने की आवश्यकता है। अब यह काम करता है, लेकिन केवल अगर मैं mvn tomcat:run-war लक्ष्य के साथ अपना आवेदन शुरू करता हूं और mvn tomcat:run गतिशील प्रोजेक्ट के साथ नहीं, जो विकास के लिए अधिक आरामदायक है। JSP 2.0 विनिर्देश का कहना है कि: वेब-INF में तत्व/सामना करना पड़ता है-config.xmlमेवेन टॉमकैट: रन गोल और जेएसएफ एनोटेशन आधारित घटक/कनवर्टर/वैलिडेटर स्कैनिंग

तो फ़ाइल मेटाडाटा: पूर्ण विशेषता जिसका मान "सही" होता है, कार्यान्वयन एनोटेशन स्कैनिंग प्रदर्शन नहीं करना चाहिए कार्यान्वयन द्वारा प्रदान की गई कक्षाओं को छोड़कर किसी भी वर्ग पर। अन्यथा, के रूप में जारी रखें।

क्रम ऐप्लिकेशन कॉन्फ़िगरेशन संसाधन में एक प्रविष्टि और एक एनोटेशन के बीच एक संघर्ष को पता चलता है, तो ऐप्लिकेशन कॉन्फ़िगरेशन संसाधन में प्रवेश वरीयता दी जाएगी। वेब-आईएनएफ/कक्षाओं में सभी कक्षाओं को स्कैन किया जाना चाहिए।

आवेदन की वेब-INF/lib निर्देशिका में हर जार के लिए, यदि जार एक में शामिल है "META-INF/सामना करना पड़ता है-config.xml" फ़ाइल या कि नियमित अभिव्यक्ति से मेल खाता है एक फ़ाइल "। *। का सामना कर रहा-config .xml "(यहां तक ​​कि एक खाली एक), में सभी कक्षाएं कि जार स्कैन किया जाना चाहिए।

लेकिन यह मेवेन निर्माण पर्यावरण में चल रही गतिशील परियोजनाओं के बारे में कुछ भी नहीं कहता है :)! क्या किसी के पास उस समस्या का समाधान है?

चीयर्स,

केविन

उत्तर

1

मैं भी इस समस्या थी, लेकिन पाया गया कि युद्ध जोड़ने: inplace लक्ष्य यह मेरे लिए काम कर दिया। यानी

mvn clean war:inplace tomcat:run 

बस 'tomcat: run' के बजाय और इसे ठीक काम करना चाहिए।

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