2011-05-11 16 views
7

मैं एक 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 शामिल है। मैं इस भूत से कैसे छुटकारा पा सकता हूं?

+0

अपनी एनबी परियोजना की सभी (कॉन्फ़िगरेशन) फ़ाइलों के विरुद्ध "सेवाबीन" (लोअरकेस प्रथम अक्षर के साथ) खोजने का प्रयास करें। कुछ conf फ़ाइलों में यह पुराना नाम हो सकता है। – MockerTim

+0

क्या आप मैक या विंडोज़ पर हैं? – vkraemer

+0

@vkraemer मैं विंडोज 7 पर हूं –

उत्तर

14

मैं इस समस्या की भिन्नता को दोहराने में सक्षम था। मैं clear the NetBeans compilation cache पड़ा

मुद्दा यह है कि मैं का सामना करना पड़ा अतीत ले जाने के लिए (OSes पर मुद्दों है कि केस-क्षमा रहे हैं ... के लिए प्रकट होता है), मैं ही था:

  1. बंद करो सर्वर

  2. स्वच्छ परियोजना

  3. बंद करो NetBeans

  4. हटाएं% गृह% .netbeans \ 6।9 \ वर \ कैश

  5. प्रारंभ NetBeans

जब मैं परियोजना जो समस्या थी भाग गया, NetBeans परियोजना कंपाइल, सर्वर शुरू कर दिया और index.xhtml खोला। मैं इसके बाद सफलतापूर्वक ऐप के माध्यम से नेविगेट करने में सक्षम था।

मैंने इस मुद्दे को ट्रैक करने के लिए http://netbeans.org/bugzilla/show_bug.cgi?id=198565 खोला है। कृपया उस समस्या की निगरानी करें और ऐसी कोई भी जानकारी जोड़ें जो आपको लगता है कि इस मुद्दे को हल करने का प्रयास करने वाले किसी की सहायता करेगा।

+0

यह काम किया, आपकी मदद के लिए बहुत बहुत धन्यवाद, विन्स! मैं इस मुद्दे पर नजर रखूंगा। –

+1

+1 हे भगवान! मैंने बस 2 घंटे से ज्यादा समय बिताया, चेहरे-कॉन्फ़िगरेशन बदलना, पीओजेओ के साथ खेलना, इससे पहले कि मैं इस पर आया!:-( – merxbj

+0

प्रश्न से संबंधित नहीं है, लेकिन मुझे ग्लासफ़िश पर एक नया डोमेन बनाने के बाद एक ही समस्या हो रही थी। एप्लिकेशन नेटबीन को तैनात करते समय भी पुराने डोमेन की तलाश में था और "डिप्लॉयमेंट त्रुटि खराब लक्ष्य सर्वर" आईडी .. "आपके द्वारा प्रदान किए गए चरणों को लागू करने के बाद, त्रुटि हल हो जाती है, गाइड के लिए धन्यवाद =) – cubbuk

0

मुझे नेटबीन्स 7.3 के साथ एक बहुत ही समस्या थी, जिसका अर्थ है कि यह अभी भी तय नहीं है। यह एक इकाई वर्ग का नाम बदलने और हटाने के बाद हुआ, और जेपीए ने यह मानने से इंकार कर दिया कि कक्षा हटा दी गई है, इसलिए मैं ग्लासफ़िश पर तैनात नहीं कर सका।

ने नेटबीन और ग्लासफ़िश को फिर से स्थापित करने के लिए मुझे कई घंटों तक ले जाया। नेटबीन को पुनर्स्थापित करने से बाहर निकलता है हालांकि इसके कैश को साफ़ नहीं करता है, और यही वह समस्या है जहां समस्या है।

मैं ओएस एक्स चलाने के रूप में, मैं ~/Library/Caches/NetBeans में निम्नलिखित किया:

$ ग्रेप -r MyDeletedEntity *

और बूम, वहाँ मेरी हटाई वर्ग के लिए कुछ संदर्भ थे!

फिर मैंने उस फ़ोल्डर में सामग्री को हटाने के लिए आगे बढ़े, नेटबीन को पुनरारंभ किया और फिर ग्लासफ़िश पर फिर से तैनात किया। अब यह काम कर रहा है!

यदि यह काम नहीं करता है, तो /एप्लिकेशन/नेटबीन/नेटबीन {जो भी संस्करण} .app/सामग्री/संसाधन/नेटबीन/एनबी/var/कैश में भी देखें और उस फ़ोल्डर में सबकुछ हटाएं।

0

बहुत देर हो चुकी है, लेकिन दूसरों की मदद कर सकती है। मुझे अभी एहसास हुआ कि जेरेबेल पुराने नामों के संदर्भ रख रहा था। मैंने अपनी परियोजना के लिए जेआरबेल को अक्षम कर दिया, साफ & बिल्ड + रन और समस्या दूर हो गई।

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