Napisałem kilka serwletów na moim lokalnym komputerze za pomocą środowiska Eclipse. Przetestowałem je na moim lokalnym komputerze i wszystko działa idealnie.Wyjątek podczas uruchamiania serwera Tomcat org.apache.catalina.deploy.WebXml addServlet
Następnie wyeksportowałem mój projekt jako plik .war i umieściłem go w katalogu webapps mojego tomcat na innej maszynie, do której mam dostęp tylko ssh. I ponownie uruchomić mój serwer Tomcat i po pobycie w plikach dziennika widzę, że rzuca następujący wyjątek:
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)
Nie mam pojęcia co to oznacza?
Ten wątek może ci pomóc. [link] (http://stackoverflow.com/questions/6110660/porting-tomcat-6-to-7-problem- withfilter) –
Widziałem tę nitkę, ale nie używam maven ani edycji plik web.xml. W moim rozumieniu nie powinienem potrzebować pliku web.xml w servlet3.0, ponieważ są one zastępowane adnotacjami. Jeśli tak, to dlaczego otrzymuję ten błąd? – Roozbeh15
Sprawdź, czy używasz tej samej wersji w obu miejscach. Zwykle nie powinno to mieć znaczenia. Podaj wersję swojej i zdalnej maszyny. Proszę również zamieścić swój fragment web.xml. Możesz zobaczyć Xerces na całym śladzie stosu. W pliku web.xml znajduje się aplet, którego nie można załadować. Zatrzymaj swój zdalny serwer tomcat. Oczyść swoje katalogi tymczasowe i robocze. Tomcat eksploduje pliki wojenne po uruchomieniu. Czy możesz potwierdzić, że w katalogu o tej samej nazwie nie ma plików? – randominstanceOfLivingThing