दिलचस्प पोस्ट
MySQL में एपॉस्ट्रॉफी (') कैसे बचें? निजी सदस्य डेटा को सीरियल करना PHP सत्र अपहरण Winforms- मैं कैसे मैसेन्बबॉक्स मेनफॉर्म पर केन्द्रित कर सकता हूं? बनाओ सीएसएस हॉवर राज्य "रहो" के बाद रहना मेरे ViewPager को एक समय में केवल एक पृष्ठ लोड कैसे कर सकता है अर्थात setOffscreenPageLimit (0); Html पृष्ठों के बीच डेटा साझा करें अजगर में डिफ़ॉल्ट अनुप्रयोग के साथ दस्तावेज़ खोलें चेतावनी: अलग-अलग दृश्य नियंत्रकों पर दृश्य नियंत्रक को दर्शाता है निराश पायथन: अन्य पायथन फ़ाइलों को कैसे आयात करें एक अन्य UIView के तहत एक UIView के साथ संपर्क की अनुमति यह जांच कैसे करें कि कोई संख्या 2 की शक्ति है या नहीं "आंतरिक एचटीएमएल + = …" बनाम "ऐपेंड चाल्ड (टीटीटीएनोड)" पर कस्टम कस्टम देखें विवरण दो जीआईटी रिपॉजिटरी सिंक्रनाइज़ कैसे करें

कैसे टॉमकेट पर सीडीआई स्थापित और उपयोग करें?

मैं अपनी पहली परियोजना जावा ईई 7 बना रहा हूँ, लेकिन मुझे परेशानी हो रही है किसी भी मदद की सराहना

  • बिल्ला 7.0.34
  • JSF 2.2
  • प्राइमफैसेस 3.5
  • javaee-api-7.0.jar

जब आवेदन शुरू, टोमैक लॉग निम्न संदेश दिखाता है:

"validateJarFile (C:\...\build\web\WEB-INF\lib\javaee-api-7.0.jar)-jar not loaded. See Servlet 2.3 Spec, section 9.7.2. Offending class: javax/servlet/Servlet .class" 

जब मैं उस बटन पर क्लिक करता हूं जिसे प्रबंधित बीन कहते हैं, तो मुझे त्रुटि मिलती है:

 Advertência: /index.xhtml @18,66 value="#{indexMB.user}": Target Unreachable, identifier 'indexMB' resolved to null javax.el.PropertyNotFoundException: /index.xhtml @18,66 value="#{indexMB.user}": Target Unreachable, identifier 'indexMB' resolved to null 

IndexMB

 @Named("indexMB") @RequestScoped public class IndexMB { private String password; private String user; public String loginTest(){ return (this.user.equals("admin") ? "adminPage" : "inOutPage"); } // getters and setters } 

index.xhtml

 <html ...> <f:loadBundle basename="i18n" var="bundle" /> <h:head> <title>#{bundle['index_title']}</title> </h:head> <h:body> #{bundle['index_appname']} <br /> <h:form id="frmIndex"> <p:panelGrid columns="2"> <p:outputLabel for="user" value="#{bundle['lblUser']}" /> <p:inputText id="user" value="#{indexMB.user}" /> <p:outputLabel for="password" value="#{bundle['lblPassword']}" /> <p:password id="password" value="#{indexMB.password}" /> </p:panelGrid> <p:commandButton action="#{indexMB.loginTest}" value="#{bundle['btn_login']}" /> </h:form> </h:body> 

चेहरे-config.xml

 <?xml version='1.0' encoding='UTF-8'?> <faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"> <application> <locale-config> <default-locale>pt_BR</default-locale> <supported-locale>en</supported-locale> <supported-locale>fr</supported-locale> </locale-config> </application> 

इन विषयों ने मेरी मदद नहीं की है:

  • जावा ईई 6 @ javax.annotation.ManagedBean बनाम @ javax.inject.Named बनाम @ javax.faces.ManagedBean
  • लक्षित अपरिवर्तनीय पहचानकर्ता को निरस्त करने के लिए हल किया
  • लक्ष्य अप्राप्य, पहचानकर्ता को निरस्त करने का संकल्प किया गया
  • javax.el.PropertyNotFoundException: लक्ष्य अपरिवर्तनीय, अभिज्ञापक 'लॉगिन' शून्य स्प्रिंग + JSF के लिए हल
  • http://www.andrejkoelewijn.com/blog/2010/03/05/jee-cdi-tip-target-unreachable-identifier-resolved-to-null/

वेब के समाधान से एकत्रित समाधान "कैसे टॉमकेट पर सीडीआई स्थापित और उपयोग करें?"

बेकबेन्स जेस्पी / सेलेट कंटेनर होने के रूप में बिलाव को बॉक्स से सीडीआई का समर्थन नहीं करता है। आपने सीडीआई कैसे स्थापित किया? क्या आप वास्तव में अपने कोड को संकलित करने के लिए javaee-api-7.0.jar पर /WEB-INF/lib javaee-api-7.0.jar /WEB-INF/lib javaee-api-7.0.jar को छोड़ javaee-api-7.0.jar ? ओह, कृपया नहीं, यह सही रास्ता नहीं है जावा ईई एपीआई जार में केवल एपीआई वर्ग हैं, न कि ठोस कार्यान्वयन। पूरे जार से छुटकारा पाएं यह कई अन्य पोर्टेबिलिटी समस्याएं पैदा कर सकता है जैसे कि इस उत्तर में वर्णित हैं: मैं अपने एक्लिपस प्रोजेक्ट में javax.servlet API कैसे आयात करूँ? आप वास्तव में विशिष्ट एपीआई के साथ ठोस कार्यान्वयन स्थापित करना चाहिए।

आपके पास 2 विकल्प हैं:

  1. बिल्ला छोड़ो और एक सच्चे जावा ईई कंटेनर के लिए जाओ जैसा कि आप टोमक का उपयोग कर रहे हैं, बस टॉमी को आगे बढ़ें यह वास्तव में सरल है, टॉमी वेब प्रोफ़ाइल ज़िप फ़ाइल को डाउनलोड करें , इसे निकालें और एक्लिप्स में उसी तरह एकीकृत करें जैसा आपने टोमक के लिए किया था वेबएप से जावा ईई जार फ़ाइल को निकालने और टॉमकेट से टॉमी के लिए प्रोजेक्ट के गुणों में लक्षित रनटाइम प्रॉपर्टी को बदलने के लिए मत भूलें ताकि जावा ईई निर्भरता ठीक से हल हो जाए।

    कोई अतिरिक्त JARs या कॉन्फ़िगरेशन आवश्यक नहीं है आप अपने वेबपैड से JSF JARs भी निकाल सकते हैं टॉमी को एक सच्चे जावा ईई कंटेनर के रूप में पहले से ही बॉक्स के बाहर जेएसएफ और सीडीआई के अलावा अन्य लोगों को प्रदान किया गया है। यदि आप मेवेन का उपयोग कर रहे हैं, तो नीचे समन्वय पर्याप्त है

     <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version><!-- 7.0 (TomEE 7.x) or 6.0 (TomEE 1.x) --></version> <scope>provided</scope> </dependency> 

    provided महत्व और इसके अर्थ के रूप में ध्यान दें, "लक्ष्य निर्धारित समय पहले से ही यह बॉक्स प्रदान करता है"। हमारे JSF विकी पेज भी देखें।


  2. टोमक पर एक सच्चे सीडीआई कार्यान्वयन स्थापित करें वेल्ड उपलब्ध सीडीआई कार्यान्वयनों में से एक है वेल्ड स्थापना गाइड में आप निर्देश प्राप्त कर सकते हैं कि इसे टॉमकेट में कैसे एकीकृत किया जाए। पूर्णता और भविष्य के संदर्भ के लिए, यहां कदम हैं:

    1. weld-servlet.jar /WEB-INF/lib में weld-servlet.jar ड्रॉप करें यदि आप मेवेन का उपयोग कर रहे हैं, तो इस निर्देशांक का उपयोग करें :

       <dependency> <groupId>org.jboss.weld.servlet</groupId> <artifactId>weld-servlet</artifactId> <version>2.3.4.Final</version> </dependency> 
    2. निम्न सामग्री के साथ /META-INF/context.xml में /META-INF/context.xml फ़ाइल बनाएं:

       <Context> <Resource name="BeanManager" auth="Container" type="javax.enterprise.inject.spi.BeanManager" factory="org.jboss.weld.resources.ManagerObjectFactory"/> </Context> 
    3. /WEB-INF/beans.xml एक खाली /WEB-INF/beans.xml फ़ाइल बनाएं

    यही है (ध्यान दें: पुराने वेल्ड सेलेट संस्करण में, आपको सीडीआई बीन मैनेजर और वेल्ड श्रोता को web.xml भी स्पष्ट रूप से पंजीकृत करना होगा, लेकिन यह वर्तमान संस्करणों के साथ अनावश्यक है)।

    यदि आप सीडीआई कार्यान्वयन के रूप में वेल्ड के ऊपर ओपन अपबैंस को पसंद करते हैं, विस्तृत मैवेन अधिष्ठापन निर्देशों के लिए इस ब्लॉग के प्रमुख: टॉमकेट में सीडीआई कैसे स्थापित करें?


ठोस समस्या से संबंधित नहीं, जेएसपी / सैलेट एपीआई ऑफ टोमकैट 7 जावा एई 7 के उन एपीआई का पालन नहीं करते, इसके बजाय यह जावा ईई 6 (सर्वलेट 3.0 / जेएसपी 2.2) का अनुपालन करता है। यदि आप जावा EE 7 (सर्वलेट 3.1 / जेएसपी 2.3) के टॉमकेट समकक्ष चाहते हैं, तो आपको टोमकैट 8 में दिखना चाहिए। अपाचे बिलाव संस्करण मैट्रिक्स भी देखें।

अन्य संभव विकल्प आपके तैनाती में beans.xml को छोड़ रहा है।