org.springframework.web.servlet.DispatcherServl...

org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servle

 

調試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


而在引用javax.servlet.jsp的依賴時,若是也沒有加上   屬性範圍<scope>provided</scope>,則也會拋出以下異常:

org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR file "file:/E:/chenzehe/mvnrepo/javax/servlet/jstl/1.2/jstl-1.2.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV

附:
依賴範圍(scope) 主源碼classpath可用 測試源碼classpath可用 會被打包
compile 缺省值 TRUE TRUE TRUE
test FALSE TRUE FALSE
runtime FALSE TRUE TRUE
provided TRUE TRUE FALSE
相關文章
相關標籤/搜索