**部署組件路徑映射錯誤**:MyEclipse 專案預設輸出目錄為 `WebRoot`,轉為 Eclipse 後未更新為 `WebContent`,導致 Tomcat 找不到靜態資源與 `WEB-INF/web.xml`。
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="MyProject">
<wb-resource deploy-path="/" source-path="/WebContent"/> <!-- 關鍵行 -->
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="MyProject"/>
<property name="java-output-path" value="/MyProject/target/classes"/>
</wb-module>
</project-modules>
確保 `source-path="/WebContent"` 與實際目錄名稱一致。
| 誤區 | 正確認知 |
|---|---|
| 以為 `WebContent`/`WebRoot` 只是名稱不同 | Eclipse WTP **強制要求** `WebContent` 作為標準 Web 根目錄名稱 |
| 只修改 `web.xml` 路徑 | 部署路徑由 Deployment Assembly 決定,與 `web.xml` 內容無關 |
| 以為 Maven 專案不受影響 | Maven 專案 `src/main/webapp` 對應 `WebContent`,同樣需正確映射 |
<!-- pom.xml -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory> <!-- 預設即此 -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
Eclipse 中 Maven 專案:Properties → Deployment Assembly → 自動包含 `src/main/webapp` → `deploy-path: /`,通常無需手動調整。
# 專案目錄下
mvn clean eclipse:clean eclipse:eclipse -Dwtpversion=2.0
# 或 Eclipse 中
Project → Clean → 勾選所有專案 → Clean
Server → Clean Tomcat Work Directory
Server → Publish
掌握 Eclipse WTP 部署組件映射機制,即可快速解決專案遷移、目錄重命名、Maven 轉換等場景下的 404 問題,確保 Web 根目錄正確發布至 Tomcat。
fseek 先移至末尾取大小,再移至開頭統計行數