मैं एक webservice के लिए एक परीक्षण क्लाइंट लिख रहा हूँ। यह जेएसएफ ढांचे का उपयोग कर नेटबीन्स 6.9.1 वेब अनुप्रयोग है। मेरे पास एक प्रबंधित बीन है जो webservice को कॉल करता है।कक्षा नाम के बाद नेटबीन्स परिनियोजन विफल रहता है
सबकुछ ठीक काम करता है जब तक कि मैंने अपने बीन वर्ग के नाम में एक टाइपो नहीं देखा। यह सेवा बीन था और मैंने इसे पहले अक्षर ऊपरी मामले के साथ सर्विसबीन पर बदल दिया। मैंने नेटबीन्स के सुरक्षित नामकरण समारोह का उपयोग किया और दोनों फ़ाइल नाम और वर्ग हस्ताक्षर अपेक्षित के रूप में बदल गए।
लेकिन तब से मुझे ग्लासफ़िश 3.0.1 पर अपना आवेदन चलाने में बहुत परेशानी हुई।
मैं बिना किसी त्रुटि के नेटबीन्स से अपना आवेदन बना सकता हूं (यहां तक कि "स्वच्छ & बिल्ड")। लेकिन अगर मैं तैनात वहाँ सर्वर लॉग में निम्न संदेश है:
WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: jsf/serviceBean (wrong name: jsf/ServiceBean)
WARNUNG: WEB9052: Unable to load class jsf.ServiceBean, reason: java.lang.ClassNotFoundException: jsf.ServiceBean
INFO: Mojarra 2.0.2 (FCS b10) für Kontext '/PidClient' wird initialisiert.
SCHWERWIEGEND: Unable to load annotated class: jsf.serviceBean, reason: java.lang.NoClassDefFoundError: jsf/serviceBean (wrong name: jsf/ServiceBean)
INFO: Loading application PidClient at /PidClient
मैं एक facelet पेज कि अपने प्रबंधित सेम करने के लिए प्रस्तुत किया जाएगा पर एक फार्म है। प्रपत्र उपरोक्त त्रुटि के बावजूद लोड किया जाएगा, लेकिन अगर मैं इसे प्रस्तुत करने के लिए कोशिश मैं निम्नलिखित त्रुटि मिलती है:
WARNUNG: /index.xhtml @19,94 value="#{serviceBean.fldLname}": Target Unreachable, identifier 'serviceBean' resolved to null
javax.el.PropertyNotFoundException: /index.xhtml @19,94 value="#{serviceBean.fldLname}": Target Unreachable, identifier 'serviceBean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:93)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1008)
तो यह केवल एक अनुवर्ती ऊपर NoClassDefFoundError की वजह से त्रुटि हो जाएगा।
और अब अजीब हिस्सा करने के लिए: तो मैं अपने प्रोजेक्ट का निर्माण यह फ़ाइल ServiceBean.class बनाता है, लेकिन अगर मैं Netbeans से परियोजना की तैनाती और फिर मेरी तैनाती निर्देशिका पर गौर वर्ग serviceBean.class नाम दिया है।
ऐसा लगता है कि तैनाती प्रक्रिया फ़ाइल का नाम बदलती है।
समस्या क्या है? (Netbeans 6.9.1, Glassfish 3.0.1, विंडोज 7)
अद्यतन: यह भी बेहतर हो जाता: ServiceBean2.java का नाम बदलकर ServiceBean.java। परिणाम: यदि मैं "& बिल्ड करें" युद्ध फ़ाइल में केवल ServiceBean2.class शामिल है। अगर मैं एनबी से तैनात करता हूं तो बिल्ड डीआईआर में ServiceBean2.class और serviceBean.class शामिल है। मैं इस भूत से कैसे छुटकारा पा सकता हूं?
अपनी एनबी परियोजना की सभी (कॉन्फ़िगरेशन) फ़ाइलों के विरुद्ध "सेवाबीन" (लोअरकेस प्रथम अक्षर के साथ) खोजने का प्रयास करें। कुछ conf फ़ाइलों में यह पुराना नाम हो सकता है। – MockerTim
क्या आप मैक या विंडोज़ पर हैं? – vkraemer
@vkraemer मैं विंडोज 7 पर हूं –