maven啟動 cannot be cast to javax.servlet.Filter/cannot be cast to javax.servlet.Servlet 報錯
阿新 • • 發佈:2019-02-20
使用maven開發web應用程式,啟動就報錯:
java.lang.ClassCastException: com.alibaba.druid.support.http.WebStatFilter cannot be cast to javax.servlet.Filter
就算註釋了該filter也會報spring的dispatch的servlet無法轉型。
原因
折騰了好久,終於找出原因:servlet-api.jar與tomcat自帶的包衝突
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope> <!--加上即可-->
</dependency>
<scope>,它主要管理依賴的部署。目前<scope>可以使用5個值:
1. compile,預設值,會隨著專案一起釋出。
2. provided,類似compile,希望執行容器提供。
3. runtime,執行時使用。
4. test,只在測試時使用,不會用於釋出。
5. system,類似provided