Maven tomcat插件中未加载Servlet api
我试图通过tomcat7 maven插件(tomcat7:deploy)在tomcat7上部署Spring应用程序,但在执行应用程序时,出现以下错误: 信息:validateJarFile(C:\Program Files (x86)\apache-tomcat-7.0.47\webapps\MyApp\WEB-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/
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中是否还有其他错误?可能重复