在 Eclipse 中開發 Java Web 項目時,繼承 HttpServlet 的類報錯:The type javax.servlet.http.HttpServlet cannot be resolved. It is indirectly referenced from required .class files。原因是項目構建路徑缺少 Servlet API 庫。
以下以 Tomcat 為例,步驟通用於 Jetty、JBoss 等容器。







現代項目建議使用構建工具管理依賴,避免 IDE 強耦合。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope> <!-- 容器已提供,不打包進 WAR -->
</dependency>
dependencies {
providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
}
刷新項目後自動下載 Jar 並添加到構建路徑。
LinkageError。javaee-api 包含所有 Java EE 接口,體積大且版本易衝突,Web 項目僅需 servlet-api。provided。// 測試類
@WebServlet("/test")
public class TestServlet extends HttpServlet { // 不再報錯
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.getWriter().write("Servlet API 已正確加載!");
}
}
通過以上步驟,徹底解決 HttpServlet 找不到問題,規範依賴管理,避免部署衝突。