首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 開發常見異常與解決方案速查手冊

     編輯:Java 相關知識

整理實戰中高頻出現的異常、報錯場景與解決思路,方便快速定位問題。

1. HTTP 404 - 資源不可用

The requested resource (/project/hello.action) is not available.
  • 原因: 伺服器部署路徑與請求 URL 不匹配,或 web.xml / struts.xml 映射錯誤。
  • 排查: 檢查 Server 部署設定(MyEclipse: Project Properties → MyEclipse → Web),確認 Context Root;清理伺服器工作目錄,重新發布。

2. ClassNotFoundException: ContextLoaderListener

Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  • 原因: 專案缺少 Spring Web Library(含 spring-web.jar)。
  • 解決: MyEclipse 右鍵專案 → Properties → MyEclipse → Web → Libraries,勾選 Spring 3.0/4.x Web Library;或 Maven 加入 spring-web 依賴。

3. 端口衝突:Address already in use: JVM_Bind

StandardServer.await: create[8005]: java.net.BindException: Address already in use
  • 原因: 8080(HTTP)或 8005(Shutdown)端口被佔用。
  • 解決:
    1. 關閉獨立運行的 Tomcat 進程。
    2. netstat -ano | findstr 8080 找出 PID,任務管理器結束進程。
    3. 或修改 server.xml 更改 Connector port 與 Server port。

4. ClassCastException: Integer cannot cast to List

Object o = session.getAttribute("key");
List list = (List) o; // 報錯
  • 原因: Session 中存放的實際型別非 List(可能是 Integer、String 等)。
  • 建議: 取值前先 instanceof 判斷,或統一存放型別;若確定為單值,改用 String val = (String) o 再封裝進 List。

5. Errors running builder 'DeploymentBuilder' / NullPointerException

  • 現象: MyEclipse 自動部署時拋 NPE,常見於非 MyEclipse 建立的專案匯入後。
  • 解決:
    1. 關閉 MyEclipse。
    2. 刪除工作區 .metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.ast.deploy.core.prefs。
    3. 重啟,或在專案 Properties → Builders 取消勾選 DeploymentBuilder 關閉自動部署。

6. JS 檔案驗證報錯

  • 解決: 右鍵 JS 檔案 → MyEclipse → Exclude From Validation 勾選。

7. Eclipse 專案遷移至 MyEclipse,Servlet 報錯

  • 解決: 專案 Build Path 加入 javaee.jar(或 servlet-api.jar)。

8. MySQL 語法錯誤:near 'by publishDate desc limit 0,8'

  • 原因: 動態 SQL 拼接時欄位名與關鍵字衝突,或空格缺失(如 order by 前缺空格)。
  • 建議: 使用 PreparedStatement 或 MyBatis 參數綁定,避免手動拼接;若必須拼接,打印完整 SQL 檢查空格與保留字。

9. 點擊部署按鈕無反應 / 部署卡住

  • 解決: 同第 5 條,刪除 com.genuitec.eclipse.ast.deploy.core.prefs 並重啟。

10. Struts2: Action mapping not found

Type Action question!list cannot be found in the namespace /
  • 解決: Window → Preferences → MyEclipse → Validation → 取消 Struts2 Validator 的 Build 勾選(或全部 Build 勾選移除)。

核心排錯心法: 異常堆疊最頂層的 Caused by 通常是根因;善用 Google/StackOverflow 搜尋關鍵錯誤訊息(勿貼整串堆疊);養成「一步驗證、一步整合」習慣,將問題域縮至最小。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved