Maven tomcat插件中未加载Servlet api

Maven tomcat插件中未加载Servlet api,maven,tomcat,servlets,maven-3,embedded-tomcat-7,Maven,Tomcat,Servlets,Maven 3,Embedded Tomcat 7,我试图通过tomcat7 maven插件(tomcat7:deploy)在tomcat7上部署Spring应用程序,但在执行应用程序时,出现以下错误: 信息:validateJarFile(C:\Program Files (x86)\apache-tomcat-7.0.47\webapps\MyApp\WEB- INF\lib\servlet-api-2.5-6.1.11.jar)-未加载jar。请参阅Servlet Spe c 2.3,第9.7.2节。有问题的类:javax/servlet/

我试图通过tomcat7 maven插件(tomcat7:deploy)在tomcat7上部署Spring应用程序,但在执行应用程序时,出现以下错误:

信息:validateJarFile(C:\Program Files (x86)\apache-tomcat-7.0.47\webapps\MyApp\WEB-
INF\lib\servlet-api-2.5-6.1.11.jar)-未加载jar。请参阅Servlet Spe c 2.3,第9.7.2节。有问题的类:javax/servlet/servlet.class 16-gen-2014 14.18.25 org.apache.catalina.core.StandardContext StartTernal GRAVE:错误监听器Start 16-gen-2014 14.18.25 org.apache.catalina.core.StandardContext开始内部坟墓:上下文 [/MyApp]由于以前的错误,启动失败

如果我通过jetty使用jetty:运行一切正常

这是我的插件配置

        <!-- To launch embded jetty server -->
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>${maven-jetty-plugin.version}</version>
            <configuration>
                <webAppConfig>
                    <contextPath>/${project.name}</contextPath>
                </webAppConfig>
            </configuration>
        </plugin>
    <!-- To launch embded tomcat server -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <url>http://localhost:8081/manager/text</url>
                <server>my-tomcat</server>
                <path>/MyApp</path>
            </configuration>
        </plugin>

org.mortbay.jetty
jetty maven插件
${maven jetty plugin.version}
/${project.name}
org.apache.tomcat.maven
tomcat7 maven插件
2.1
http://localhost:8081/manager/text
我的雄猫
/MyApp
这些是我的依赖项:

    <!-- Spring dependencies -->
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
         <exclusions>
        <!-- Exclude Commons Logging in favor of SLF4j -->
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>

 <!-- default j2ee dependencies  -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>${servlet-api.version}</version>
        <scope>provided</scope>
    </dependency>

org.springframework
春季aop
${spring.version}
org.springframework
春季方面
${spring.version}
org.springframework
春豆
${spring.version}
org.springframework
spring上下文
公用记录
公用记录
${spring.version}
org.springframework
spring上下文支持
${spring.version}
org.springframework
弹簧芯
${spring.version}
org.springframework
SpringJDBC
${spring.version}
org.springframework
春季甲虫
${spring.version}
org.springframework
德克萨斯州春季
${spring.version}
org.springframework
弹簧网
${spring.version}
javax.servlet
servlet api
${servlet api.version}
假如

如何解决此问题?

错误消息的重要部分是

INFO:validateJarFile(C:\ProgramFiles(x86)\apache-tomcat-7.0.47\webapps\MyApp\WEB-INF\lib\servlet-api-2.5-6.1.11.jar)-未加载jar。参见Servlet Spe c 2.3,第9.7.2节。有问题的类:javax/servlet/servlet.class

这意味着您正试图加载
servlet-api-2.5-6.1.11.jar
,作为包含
javax.servlet.servlet
定义的web应用程序的一部分。上述规范的第9.7.2节规定,容器用于加载servlet的类加载器不得允许WAR覆盖J2SE或Java servlet API类


在我的例子中,在使用
pom.xml
文件中的以下行构建war文件时,我成功地排除了某些JAR:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.1-alpha-2</version>
  <configuration>
  ...
    <packagingExcludes>WEB-INF/lib/javax.servlet-*.jar</packagingExcludes>
  ...
  </configuration>
</plugin>

org.apache.maven.plugins
maven战争插件
2.1-α-2
...
WEB-INF/lib/javax.servlet-*.jar
...

catalina.out中是否还有其他错误?可能重复