2013-07-05 7 views
16

मैं अपने वेब एप्लिकेशन को जेबॉस 4.2 से टॉमकैट 7 में माइग्रेट कर रहा हूं।
टॉमकैट 7 का उपयोग करने के बाद मुझे निम्नलिखित अपवाद का सामना करना पड़ रहा है।java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet

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(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) 
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) 
    at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1883) 
    at org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment(ContextConfig.java:1469) 
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1246) 
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) 
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376) 
    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:5269) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

मैं दूर करने के लिए कोशिश की है catalina.jar lib से (समाधान एक ही अपवाद के लिए दिए गए के अनुसार) इस मुद्दे को हल करने के लिए, लेकिन यह काम नहीं किया।

मुझे इस मुद्दे को हल करने का कोई तरीका नहीं मिल रहा है, कृपया कोई भी इस मुद्दे पर सहायता कर सकता है।

+0

आप अपने web.xml फ़ाइल के लिए कोड पोस्ट कर सकते हैं? –

उत्तर

10

मुझे विश्वास है, यह त्रुटि तैनाती असेंबली के बारे में है। तैनाती असेंबली में आपको catalina.jar की आवश्यकता नहीं है।

+0

मैं इसके साथ कुछ दिनों के लिए अपने सिर तोड़ रहा था। उत्तर के लिए बहुत बहुत धन्यवाद। –

+0

हां, यह टोमकैट 7 में catalina.jar को हटाने के बाद काम करता है। – aqingsao

25

अपने pom.xml में यदि आप बिल्ला-Catalina तरह निर्भरता को शामिल किया है, गुंजाइश प्रदान की

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-catalina</artifactId> 
    <version>7.0.47</version> 
    <scope>provided</scope> 
</dependency> 

कंटेनर (यहाँ बिल्ला) के रूप में डाल ही कुछ निर्भरता प्रदान करता है (जैसे बिल्ला-Catalina जार) जब आप अपना ऐप तैनात करते हैं। तो आपको उन्हें अपने आवेदन में शामिल करने की आवश्यकता नहीं है। लेकिन संकलन के लिए जार की जरूरत है। यह 'के रूप में प्रदान की'

-3

वहाँ एक और समाधान जब आप catalina.jar की आवश्यकता है है, %TOMCAT_HOME%/conf/context.xml

1
में

<Loader delegate="true"/> 

जोड़ने

<Context /> 

तत्व को दायरे की स्थापना द्वारा हासिल की है

मेरे जैसे लोगों को स्प्रिंग बूट के साथ इस समस्या का सामना करना पड़ रहा है, इस निर्भरता को जोड़कर इसे हल किया गया:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 
-1

pom.xml में <scope>provided</scope> जोड़ें:

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-catalina</artifactId> 
    <version>7.0.27</version> 
    <scope>provided</scope> 
</dependency> 
संबंधित मुद्दे