內容

目錄

回報錯誤前

Apache Tomcat® 社群由使用 Apache Tomcat、協助在討論清單上回答問題、提供文件和修補程式,以及開發和維護 Apache Tomcat 程式碼的人員組成。幾乎所有每天協助解決錯誤報告的人員都是基於各種原因,而且幾乎所有人都利用自己的時間來進行這些工作。

許多回報的錯誤最後發現並非 Apache Tomcat 程式碼中的錯誤,而是由於設定錯誤、已安裝應用程式所造成的問題、作業系統等問題所致。

在回報錯誤之前,請盡一切努力自行解決問題。

如果您需要協助,請在使用者郵件清單中詢問。

本文件其餘部分將引導您使用可解決您所遇問題的資源。

Bugzilla 不是支援論壇

Bugzilla 是一個用於追蹤錯誤報告和功能要求的工具。它用於組織 Apache Tomcat 專案的工作,以避免遺忘此類問題,並記錄其解決方式。

Bugzilla 不是詢問如何設定您自己的系統,或如何詮釋您不了解的錯誤訊息或行為的地方。如果您有任何問題,請在使用者郵件清單中詢問。

當您收集到足夠的資訊來診斷您的問題時,而且它確實是 Apache Tomcat 中可以修正的錯誤,請隨時建立或重新開啟您的 Bugzilla 問題。您可以在郵件清單檔案中找到討論串連結,並將其包含在您的錯誤報告中。

協助解決 Apache Tomcat 問題的資源

以下是一些資源,可協助您在回報錯誤之前解決您所遇的問題。

問題疑難排解

  • 文件 – 檢閱您所使用的 Apache Tomcat 版本文件。您所遇到的問題可能已在文件中說明。請注意,文件是可以搜尋的。
  • 記錄 – Apache Tomcat 所產生的記錄在嘗試診斷問題時可能是一個有價值的資源。請檢閱它們。您可能想要在 Apache Tomcat 設定中啟用偵錯輸出,以便您有更多資訊來協助診斷問題。您可能想要設定存取記錄(一個閥值)來記錄哪些要求已傳送至 Tomcat,以及 Tomcat 對它們的回應。
  • Wiki – 搜尋Wiki。那是所有人都可以貢獻的非官方文件。
  • 常見問題 – 搜尋Tomcat 常見問題,它是 Wiki 的一部分。

Apache Tomcat 討論清單

您很可能不是第一個遇到問題的人。其他人可能已經找到解決方案。郵件清單檔案可能包含有助於您解決問題的討論串。

請參閱郵件清單頁面,以取得清單的更多資訊。

另請參閱 尋找協助 頁面。

已知問題

請搜尋錯誤資料庫,查看您所看到的錯誤是否已有人回報。請查看變更日誌頁面,了解已修復的錯誤。尚未發布的 Tomcat 版本變更日誌也已提供。更多詳情如下。

最新版本

嘗試使用最新發布的 Apache Tomcat 版本重現您的問題。

尋找已知問題

搜尋錯誤資料庫

請搜尋錯誤資料庫,查看您所看到的錯誤是否已有人回報。

  • 錯誤可能已修復,並在後續版本或夜間建置中提供。
  • 其他人可能已回報錯誤,您可以新增支援資訊,協助重現和解決錯誤。

搜尋頁面 在此。另有 進階 搜尋頁面。

以下提供一些搜尋秘訣。

  1. 搜尋已關閉和開啟的錯誤。

    在進階搜尋頁面,您可以清除「狀態」欄位,避免依據狀態進行篩選。

  2. 跨不同版本的 Tomcat 搜尋。

    在錯誤資料庫中,Tomcat 由多個「產品」表示。同一個問題應只回報一次,但修正程式可能套用於不同的 Tomcat 版本。執行此動作時,錯誤回報會在不同的產品之間移動。原本針對 Tomcat 9 回報的錯誤會移至 Tomcat 8,之後可能移至 Tomcat 7。因此,一次搜尋所有版本是有意義的。

    以下是支援產品的快速清單

    • Tomcat 11Tomcat 10Tomcat 9Tomcat 8 – Tomcat 11.0.x、10.1.x、9.0.x 和 8.5.x
    • Tomcat Connectors – Tomcat 與其他 Web 伺服器的整合
    • Tomcat Native – Tomcat 的基於 APR 的原生 HTTP 和 AJP 連接器
    • Tomcat Modules – 其他 Tomcat 元件
    • Taglibs – Apache 標籤庫 子專案
  3. 不只搜尋摘要欄位,也搜尋註解欄位

    在進階搜尋頁面開啟「詳細錯誤資訊」,然後在「註解」欄位輸入您的查詢。

  4. 您可以將結果限制為最近變更的問題。

    在進階搜尋頁面開啟「依變更歷程搜尋」,然後在「介於」欄位對的第一個欄位輸入「-2m」,將結果限制為過去 2 個月變更的問題。

  5. 有些錯誤不屬於 Tomcat。

    Tomcat 彙整其他多個專案的函式庫。您可以在發行版中查看 RELEASE-NOTES 和 NOTICE 檔案,取得詳細資訊。更多詳情請見下方獨立章節。

變更日誌

如果您正在尋找最近修正的問題,有幾個地方可以查看。

  • 已發佈版本的變更日誌檔案

    這些檔案發佈在 Tomcat 網站上。

  • 尚未發佈 版本的變更日誌檔案

    這些檔案可在原始碼中取得。

    它們採用 XML 格式,並附有樣式表。因此,現代網路瀏覽器可以很好地顯示它們。

    這些檔案也可在夜間文件建置中取得。有關詳細資訊,請參閱 Buildbot 頁面。

連結

產品 變更日誌 (已發佈) 變更日誌 (未發佈)
Tomcat 11.0 (主要) changelog.html changelog.html - CI
Tomcat 10.1 changelog.html changelog.html - CI
Tomcat 9.0 changelog.html changelog.html - CI
Tomcat 8.5 changelog.html changelog.html - CI
Tomcat 連接器 changelog.html changelog.xml
Tomcat Native 2.0 changelog.html changelog.xml
Tomcat Native 1.2 changelog.html changelog.xml

第三方元件

Tomcat 捆綁了來自其他專案的函式庫。有關詳細資訊,請參閱發行版中的 RELEASE-NOTES 和 NOTICE 檔案。用於建置 Tomcat 的元件版本定義在原始碼發行版的 build.properties.default 檔案中。

值得注意的元件包括

  • Tomcat 服務啟動器 – commons-daemon-*tomcatN.exetomcatNw.exe

    服務啟動器由 Apache Commons Daemon 專案提供。

    使用該專案的術語,*nixes 啟動器稱為 jsvc,而 Windows 啟動器稱為 procrun。Tomcat 發行版中的 tomcatN.exetomcatNw.exe 程式只是從 Apache Commons Daemon 二進位檔發行版重新命名為 prunsrv.exeprunmgr.exe

  • DBCP 資料庫池實作 – tomcat-dbcp.jar

    此池實作由 Apache Commons PoolApache Commons DBCP 專案提供。

    這兩個專案的類別重新命名為不同的套件,以避免在網路應用程式使用相同的函式庫、重新編譯並打包到單一 JAR 檔案時發生衝突。

  • JDBC 資料庫池實作 – tomcat-jdbc.jar

    此池實作可與 Tomcat 7 和後續版本搭配使用,它來自 jdbc-pool 專案,該專案是 Tomcat 模組的一部分。此函式庫與 Tomcat 主程式並行開發。

  • Tomcat Maven 外掛程式 子專案會在 JIRA 資料庫 追蹤其問題。

回報 Apache Tomcat 錯誤

請確定問題是 Apache Tomcat 中的錯誤,而不是您的網路應用程式中的錯誤。

請注意,與安全性相關 的問題不應透過 Bugzilla 回報。

如何撰寫錯誤報告

請提供盡可能多的資訊。如果檢視問題的人無法重現問題,將很難修正錯誤。另請參閱 錯誤撰寫指南

錯誤提交從 這裡 開始。您必須在錯誤回報中包含下列資訊

  • 產品。以下是支援產品的清單

    • Tomcat 11 – Tomcat 11.1.x 和 tomcat.apache.org 網站
    • Tomcat 10 – Tomcat 10.1.x
    • Tomcat 9 – Tomcat 9.0.x
    • Tomcat 8 – Tomcat 8.5.x
    • Tomcat Connectors – Tomcat 與其他網路伺服器的整合。適用於 Apache HTTPD 和其他網路伺服器的 mod_jk 模組。
    • Tomcat Native – 使用原生程式碼的 Tomcat HTTP 和 AJP 連接器,並與 Apache APR 和 OpenSSL 函式庫連結
    • Tomcat 模組 – 其他 Tomcat 元件,例如 jdbc-pool
    • Taglibs – Apache 標籤庫 子專案
  • 版本 – Apache Tomcat 版本。

    請不僅從清單中選取,也要在文字中提及。錯誤說明可以更新,因此在文字中提及版本也很重要。

  • 元件 – 具有錯誤的元件。

    如果您不知道,請猜測。

  • 平台作業系統 – Tomcat 執行的硬體平台和作業系統。

  • 嚴重性 – 這對於一般的錯誤回報是 normal,而對於強化要求則是 enhancement

    如果您傾向於將其標記為 critical,您很可能做錯了。問題很可能已經知道並已修正,或者根本不是問題。

  • 組態詳細資料

    請在您的文字中提及這些內容

    • Java 版本 – 用於執行 Tomcat 的 Java 執行環境供應商和版本。
    • 如果 Tomcat 是在 Apache HTTPD 或其他網路伺服器之後使用,則為其版本以及其組態方式。
    • 正在使用的 Tomcat Connector。Tomcat 中有數個 Connector 實作。在 Tomcat 啟動期間,會在記錄中顯示正在使用哪一個。
  • 附件

    如果組態檔案和 Tomcat 記錄檔有助於追蹤錯誤,請將其附加。

  • 重現

    請說明如何在乾淨的 Tomcat 安裝中重現您的問題。如果您能提供一個展示此問題的簡單範例 Web 應用程式,那就太好了。

如何提交修補程式和加強要求

Tomcat 的功能強化要求與錯誤回報提交程序相同,但您會在嚴重性欄位中選取值「功能強化」。

對於透過 GitHub 可用的元件,您可以提供建議的修補程式作為拉取要求。或者,您可以將建議的修補程式附加到 Bugzilla 問題。在提供修補程式時,請說明它適用於原始程式碼的哪個版本。我們歡迎任何修補程式,但我們偏好使用 統一比對 格式的修補程式。這些修補程式可以使用 diff -u 指令、svn diff 指令或 git diff 指令產生。

若要修補並建置 Apache Tomcat,請參閱下列參考文件

若要準備文件修補程式

閱讀原始程式碼散佈中 BUILDING.txt 檔案中關於建置文件的區段。通常 Tomcat 版本的文件位於原始程式碼中的 webapps/docs/ 目錄,可以使用 ant build-docs 指令建置。

若要建置文件,擁有 Java 執行時期和 Apache Ant 副本就已足夠。編譯 Tomcat 程式碼應無必要。

一般參考

安全性問題

與安全性相關的錯誤特別令人擔憂。如果您有已驗證的安全性錯誤要回報,請不要將其張貼到公開電子郵件清單,也不要提交錯誤回報。請參閱安全性回報頁面,了解如何回報這些錯誤。