2012-02-08 134 views
0

所以我想在本地開始運行tomcat 7。 於是我抓住了插件及其依賴項並更新了我的pom。tomcat maven插件升級到tomcat 7

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0-beta-1</version> 
    <configuration> 
     <path>/mapp</path> 
    </configuration> 
</plugin> 
<dependency> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0-beta-1</version> 
    <type>maven-plugin</type> 
</dependency> 

現在,當我運行mvn clean install tomcat7:run它通過豆腐塊然後吐出以下錯誤:

[INFO] Running war on http://localhost:8080/mapp 
[INFO] Creating Tomcat server configuration at c:\dev\bing-branch\mapp\target\tomcat 
Feb 8, 2012 4:34:34 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
Feb 8, 2012 4:34:34 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Tomcat 
Feb 8, 2012 4:34:34 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.25 
Feb 8, 2012 4:34:35 PM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment 
INFO: No global web.xml found 
Feb 8, 2012 4:34:35 PM org.apache.tomcat.util.digester.Digester endElement` 

SEVERE: End event threw exception 
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter 
     at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:848) 
     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:601) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) 
     at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1765) 
     at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1171) 
     at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:825) 
     at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300) 
     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:5161) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:619) 
Feb 8, 2012 4:34:35 PM org.apache.catalina.startup.ContextConfig parseWebXml 
SEVERE: Parse error in application web.xml file at jndi:/localhost/mapp/WEB-INF/web.xml 
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter 
     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2687) 
     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2719) 
     at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1054) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) 
     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) 
     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) 
     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) 
     at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1765) 
     at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1171) 
     at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:825) 
     at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:300) 
     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:5161) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:619) 

Caused by: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter 
     at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:848) 
     at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:201) 
     at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1051) 
     ... 26 more 
Feb 8, 2012 4:34:35 PM org.apache.catalina.startup.ContextConfig parseWebXml 
SEVERE: Occurred at line 11 column 14 
Feb 8, 2012 4:34:35 PM org.apache.catalina.startup.ContextConfig configureStart 
SEVERE: Marking this application unavailable due to previous error(s) 

我的web.xml文件看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="mapp" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>parish</display-name> 
    <filter> 
     <filter-name>struts2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
</web-app> 

我檢查和複查依賴關係,包括目標目錄之後的jar搜索以及唯一的WebXml類來自mapp-0.1/WEB-INF/lib/tomcat-catalina-7.0.25.jar./mapp-0.1/WEB-INF/lib/tomcat-catalina-7.0.25.jar罐。任何人都知道我可以嘗試什麼。我很難過。

+1

我很驚訝地看到您的WEB-INF/lib目錄中的這些JAR。你確定你的依賴關係是正確的嗎? – 2012-02-09 00:02:47

+0

我這麼認爲,我認爲他們在lib文件夾中是由於tomcat7-maven-plugin插件。 – 2012-02-09 00:15:12

+0

所以你沒有對這些JAR的顯式依賴,對吧? – 2012-02-09 00:16:28

回答

2

更改了提供的pom.xml添加範圍中的tomcat依賴項並解決了問題。

<dependency> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0-beta-1</version> 
    <type>maven-plugin</type> 
    <scope>provided</scope> 
</dependency>