我正在使用Eclipse和Tomcat以及Maven插件开发Java webapp。
我的项目中有一个HTTPServlet,问题如下:如果我使用Maven来处理javax.servlet包依赖,编译就可以了,但是当我通过Tomcat Eclipse插件启动Tomcat时,会加载一个jar Tomcat即使它的范围在我的pom.xml中设置为“提供”:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
因此,当我尝试在浏览器上访问我的servlet时,我得到一个java.lang.ClassCastException:com.mypackage.HelloServlet不能转换为javax.servlet.Servlet。
我为我的开发找到的解决方案是提供用于编译的Tomcat库并从我的pom.xml中删除javax.servlet依赖项,但当然,当我使用Maven命令行工具时,编译失败。
知道为什么Tomcat / Maven插件忽略了我的pom.xml依赖的“提供”范围吗?