2011-05-27 19 views
5

में एनोटेटेड कस्टम जेएसएफ 2 घटक नहीं मिल रहा है हम JSF1.2 को जेएसएफ 2 एप्लिकेशन में माइग्रेट कर रहे हैं और मैंने कस्टम घटकों के साथ एक समस्या में उछाल दिया है। हम घटकों के साथ एक अलग जार है, और है कि जार में मैं इस है: META-INF तहतजार

@FacesComponent(value = "Panel2") 
public class Panel2 extends UIOutput { ... } 

मेरी taglib में मैं इस है:

<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" 
    id="mw"> 
    <namespace>http://www.ssss.be/jsf/mw</namespace> 
    <composite-library-name>mw</composite-library-name> 
    <tag> 
     <tag-name>panel2</tag-name> 
     <component> 
      <component-type>Panel2</component-type> 
     </component> 
    </tag> 
</facelet-taglib> 

यह सब और उपयोग की एक जार करने के बाद

xmlns:mw="http://www.sofico.be/jsf/mw" 

और फिर:

<mw:panel2 /> 
यह मेरे अन्य परियोजना में, मैं इस प्रकार टैग का उपयोग

लेकिन परिणाम दुर्भाग्य है:

javax.faces.FacesException: Expression Error: Named Object: Panel2 not found. at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1858) 
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1129) 

क्या मैं गलत यहाँ कर रहा हूँ?

उत्तर

8
  • सुनिश्चित चेहरे-config.xml में JSF संस्करण कम से कम संस्करण 2
  • सुनिश्चित वहाँ चेहरे-config.xml में एक metadata-complete विशेषता सही पर सेट नहीं है कि।
  • सुनिश्चित करें कि कक्षा WEB-INF/classes में है; या, यदि WEB-INF/lib में एक जार में, जार में चेहरे-config.xml (spec को अन्यथा एनोटेशन स्कैनिंग की आवश्यकता नहीं होती है)
  • सुनिश्चित करें कि Panel2 कोई XML कॉन्फ़िगरेशन फ़ाइल में परिभाषित घटक-प्रकार नहीं है (इस लिस्टिंग में प्राथमिकता होगी)

JSF 2 spec देखें; खंड 11.5.1।

+0

धन्यवाद! मैं बस अपने घटकलिब जार में चेहरे-कॉन्फ़िगरेशन को अपग्रेड करना भूल गया। –

+0

मेरे पास एक [समान समस्या] थी (http://stackoverflow.com/questions/9017504/facelet-tag-library-mechanism-does-not-work-as-expected)। इस पोस्ट ने मुझे बहुत मदद की। धन्यवाद। –