Spring Tomcat7错误“org.springframework.web.SpringServletContainerInitializer无法强制转换为javax.servlet.ServletContainerInitializer”

时间:2016-12-29 21:17:37

标签: spring tomcat7

启动Tomcat7服务器时出现以下错误。

org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer

我很想知道这个问题的根本原因。在什么情况下会发生此错误?我使用Tomcat Enterprise Edition(TomEE)

时没有收到错误

在我的项目中,ServletContainerInitializer从javeee-api-7.0.jar加载

我已经尝试排除从javeee-api加载的javax.servlet-api,但那不起作用

2 个答案:

答案 0 :(得分:0)

添加javeee-api-7.0.jar,它适用于我。

答案 1 :(得分:0)

我们在项目中遇到过这种情况,其中包含很多遗留代码,显然没有很好地维护。

我们通过分析所有pom.xml文件中的所有依赖项来解决它。 特别是对于这个问题,我们做的是排除javax.servlet api,因为加载了一个冲突的版本并导致了转换错误。

如果使用eclipse,则在打开pom.xml文件时,可以使用底部的Dependency Hierarchy选项卡检查依赖项。 在那里,您可以使用过滤器查看所有servlet jar版本以及使用它们的顶级依赖项。然后,您可以通过右键单击并选择"排除Maven工件来排除有问题的工具......" 然后显而易见:保存你的pom.xml,最后重复其他项目/模块,更新你的maven项目配置,最后构建/安装/运行以查看问题是否已修复。

希望有所帮助!