https://localhost:8080 顯示 404Eclipse 內置 Tomcat 默認使用 工作空間元數據部署模式,而非標準 webapps 目錄。導致:
.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/docBase 指向此臨時目錄1. Eclipse 左側 Servers 視圖雙擊 "Tomcat v7.0 Server at localhost"
2. 打開 Server 編輯器概覽頁
| 配置項 | 默認值 (問題) | 推薦值 (解決) | 說明 |
|---|---|---|---|
| Server Locations | Use workspace metadata | Use Tomcat installation | 使用標準 webapps 部署目錄 |
| Deploy path | wtpwebapps | webapps | 與 Tomcat 原生結構一致 |
| Server Options | 默認勾選 | 取消勾選 "Modules auto reload by default" | 避免熱部署導致類加載器洩漏 |
1. 右鍵 Server -> Clean...
2. 右鍵 Server -> Clean Tomcat Work Directory...
3. 右鍵項目 -> Maven -> Update Project (若為 Maven 項目)
4. 重新啟動 Server
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern> <!-- 確保無拼寫錯誤 -->
</servlet-mapping>
# 清理後重新啟動,檢查部署目錄結構
$CATALINA_BASE/webapps/
├── Test123/ # 項目上下文路徑
│ ├── WEB-INF/
│ │ ├── web.xml
│ │ ├── classes/
│ │ │ └── com/example/HelloServlet.class # 編譯產物必須存在
│ │ └── lib/ # 依賴 JAR 包
│ └── index.jsp
# Windows 檢查 8080 端口佔用
netstat -ano | findstr :8080
# 若被佔用,修改 server.xml
[WARNING] [SetPropertiesRule]{Server/Service/Engine/Host/Context}
Setting property 'source' to 'org.eclipse.jst.jee.server:Test123'
did not find a matching property.
此警告通常無害,僅表示 Eclipse 元數據屬性映射提示,不影響運行。
# 1. 下載獨立 Tomcat 解壓
# 2. bin/startup.sh 啟動
# 3. Eclipse 配置 Remote Java Application
# Host: localhost, Port: 8000 (需啟用 JPDA: catalina.sh jpda start)
# 4. Maven 配置 cargo-maven-plugin 熱部署
mvn eclipse:eclipse 或 m2e 插件正常生成 .settingsorg.apache.jasper.servlet.JspServlet 的 development=true 和 modificationTestInterval=0WEB-INF/lib 與 Tomcat lib 目錄下 JAR 版本衝突導致 LinkageError