2012-11-02 23 views
12

चलाते समय अपवाद मैंने ग्रहण का उपयोग करके अपनी स्थानीय मशीन पर कुछ सर्लेट लिखे हैं। मैंने उन्हें अपनी स्थानीय मशीन पर परीक्षण किया है और सबकुछ ठीक से काम करता है।टॉमकैट सर्वर org.apache.catalina.deploy.WebXml addServlet

मैंने फिर अपनी परियोजना को .war फ़ाइल के रूप में निर्यात किया और इसे मेरी मशीन पर मेरी टोमकैट की वेबैप निर्देशिका के तहत रखा, जिसके लिए मेरे पास केवल एसएसएच पहुंच है। मैं अपने बिल्ला सर्वर को पुनः आरंभ और लॉग फाइल देखने के बाद मुझे लगता है कि यह निम्न अपवाद फेंक रहा है:

java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet 
at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:855) 
at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:201) 
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1051) 
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1759) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2915) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625) 
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819) 
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748) 
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) 
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) 
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525) 
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) 
at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1875) 
at org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment(ContextConfig.java:1472) 
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1250) 
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) 
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) 
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:968) 
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1646) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:679) 

कोई विचार इसका मतलब यह है क्या?

+0

यह धागा आपकी मदद कर सकता है। [लिंक] (http://stackoverflow.com/questions/6110660/porting-tomcat-6-to-7-problem-with-filter) –

+0

मैंने उस धागे को देखा है, लेकिन मैं मैवेन का उपयोग नहीं कर रहा हूं, न ही संपादन web.xml। मेरी समझ के लिए मुझे servlet3.0 में web.xml की आवश्यकता नहीं है क्योंकि उन्हें एनोटेशन द्वारा प्रतिस्थापित किया गया है। अगर ऐसा है तो मुझे यह त्रुटि क्यों मिल रही है? – Roozbeh15

+0

जांचें कि क्या आप दोनों जगहों पर एक ही संस्करण चला रहे हैं। आमतौर पर इससे कोई फर्क नहीं पड़ता। तो अपने और रिमोट मशीन का संस्करण प्रदान करें। कृपया अपना वेब.एक्सएमएल स्निपेट भी पोस्ट करें। आप सभी स्टैक ट्रेस पर ज़ीरिस देख सकते हैं। Web.xml में कुछ सर्वलेट है जिसे लोड नहीं किया जा सका। अपने रिमोट टॉमकैट सर्वर को रोकें। अपने अस्थायी और कार्य निर्देशिका को साफ़ करें। एक बार शुरू होने के बाद टोमकैट युद्ध फाइलों को विस्फोट कर देता है। क्या आप पुष्टि कर सकते हैं कि एक ही नाम के साथ निर्देशिका में कोई फाइल नहीं है। – randominstanceOfLivingThing

उत्तर

20

मुझे समाधान here मिला।

मैं ठीक था जैसा कि आपको वेब.एक्सएमएल की आवश्यकता नहीं है। आप बस अपने सर्वलेट के लिए पथ परिभाषित करने के लिए एनोटेशन का उपयोग कर सकते हैं। लेकिन समस्या यह थी कि मैं अपने lib में catalina.jar भी शामिल था जो मुद्दों का कारण बन रहा था। Catalina.jar निश्चित चीजों को हटा रहा है!

+1

इसे ध्यान से पढ़ें: http://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project/4076706#4076706 यदि आपने 'कैटलिना रखा है। कुछ 'अनजान कारणों के लिए आपके'/WEB-INF/lib' में जार '(जिसके लिए मैं किसी भी उचित स्टार्टर की गलती के कारण कल्पना नहीं कर सकता), तो हो सकता है कि आपने कुछ और चीजें गलत भी की हों। – BalusC

+0

मैंने ऑनलाइन पढ़ा था कि मुझे अपने सभी जार/WEB-INF/lib के तहत रखना चाहिए था। हालांकि, मैंने अपनी परियोजना में सभी जार जोड़े थे, मैं उन्हें उस निर्देशिका में नहीं देख सका और सोचा कि इससे बाद में समस्याएं हो सकती हैं। इसलिए, मैंने मूल रूप से सभी जारों को/WEB-INF/lib में मैन्युअल रूप से कॉपी और पेस्ट किया, जो मेरे पास नहीं होना चाहिए था। लेकिन धन्यवाद कि लिंक, मदद की। – Roozbeh15

+2

निस्संदेह वेबपैड-विशिष्ट जेएआर का मतलब है, सर्वलेटकेंटर-विशिष्ट जेएआर नहीं। – BalusC

3

मैं अपनी परियोजना में मैवेन का उपयोग करने के बाद इस समस्या से मुलाकात की। जैसा कि एडम ने कहा, मैंने मैवेन निर्भरताओं में सभी tomcat libs को हटा दिया और फिर समस्या ठीक हो गई।

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

  • कोई संबंधित समस्या नहीं^_^