調試Spring MVC時發現以下異常: java
java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet web
問題出在servlet-api.jar上,tomcat部署springMVC項目時是不用這個包的,而用maven構建項目時須要,若是不引用該依賴就會不識別 HttpServletRequest等的類 spring
解決方法是在maven引用servlet的依賴時,加上屬性範圍<scope>provided</scope> apache
依賴範圍(scope) | 主源碼classpath可用 | 測試源碼classpath可用 | 會被打包 |
compile 缺省值 | TRUE | TRUE | TRUE |
test | FALSE | TRUE | FALSE |
runtime | FALSE | TRUE | TRUE |
provided | TRUE | TRUE | FALSE |