首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Proxool XML 組態 SAX 解析錯誤:首行 BOM/編碼問題

     編輯:程式設計綜合問答

錯誤現象

Proxool 讀取組態檔 proxool.xml 時拋出 SAX 解析異常,檔案內容看似正確。

常見原因與解決

  1. UTF-8 BOM (Byte Order Mark):Windows 記事本儲存時可能加入 EF BB BF 三位元組 BOM,導致 XML 解析器誤判首字元。
    **解決**:用 Notepad++ / VS Code / IDE 另存為 **UTF-8 without BOM** (或 UTF-8)。
  2. XML 宣告非首行:檔案開頭有空白行、註解或不可见字元。
    **解決**:確保 位於**第 1 行第 1 字元**。
  3. 編碼宣告與實際不符:宣告 encoding="UTF-8" 但檔案實為 ANSI/GBK。
    **解決**:統一實際編碼與宣告,建議全專案 UTF-8。
  4. 特殊字元未逸出:組態值含 &、<、> 未寫成 &amp; 等實體。
    **解決**:CDATA 區段或實體編碼。

快速驗證指令


# Linux/Mac 檢查 BOM
hexdump -C proxool.xml | head -20
# 若開頭為 ef bb bf → 有 BOM

# 移除 BOM (sed)
sed -i '1s/^\xEF\xBB\xBF//' proxool.xml

Proxool 組態範例 (正確格式)



    myPool
    jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8
    com.mysql.jdbc.Driver
    root
    password
    5
    20
    90000

替代方案

Proxool 已停止維護 (最後釋出 2007 年)。**強烈建議遷移至 HikariCP、Druid、DBCP2** 等現代連線池,效能、穩定性、監控功能全面優越。

移除 BOM、確保 XML 宣告首行、編碼一致,即可解決 Proxool SAX 解析錯誤。

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