內容
目錄
回報錯誤前
Apache Tomcat® 社群由使用 Apache Tomcat、協助在討論清單上回答問題、提供文件和修補程式,以及開發和維護 Apache Tomcat 程式碼的人員組成。幾乎所有每天協助解決錯誤報告的人員都是基於各種原因,而且幾乎所有人都利用自己的時間來進行這些工作。
許多回報的錯誤最後發現並非 Apache Tomcat 程式碼中的錯誤,而是由於設定錯誤、已安裝應用程式所造成的問題、作業系統等問題所致。
在回報錯誤之前,請盡一切努力自行解決問題。
如果您需要協助,請在使用者郵件清單中詢問。
本文件其餘部分將引導您使用可解決您所遇問題的資源。
協助解決 Apache Tomcat 問題的資源
以下是一些資源,可協助您在回報錯誤之前解決您所遇的問題。
問題疑難排解
- 文件 – 檢閱您所使用的 Apache Tomcat 版本文件。您所遇到的問題可能已在文件中說明。請注意,文件是可以搜尋的。
- 記錄 – Apache Tomcat 所產生的記錄在嘗試診斷問題時可能是一個有價值的資源。請檢閱它們。您可能想要在 Apache Tomcat 設定中啟用偵錯輸出,以便您有更多資訊來協助診斷問題。您可能想要設定存取記錄(一個閥值)來記錄哪些要求已傳送至 Tomcat,以及 Tomcat 對它們的回應。
- Wiki – 搜尋Wiki。那是所有人都可以貢獻的非官方文件。
- 常見問題 – 搜尋Tomcat 常見問題,它是 Wiki 的一部分。
Apache Tomcat 討論清單
已知問題
請搜尋錯誤資料庫,查看您所看到的錯誤是否已有人回報。請查看變更日誌頁面,了解已修復的錯誤。尚未發布的 Tomcat 版本變更日誌也已提供。更多詳情如下。
最新版本
嘗試使用最新發布的 Apache Tomcat 版本重現您的問題。
尋找已知問題
搜尋錯誤資料庫
請搜尋錯誤資料庫,查看您所看到的錯誤是否已有人回報。
- 錯誤可能已修復,並在後續版本或夜間建置中提供。
- 其他人可能已回報錯誤,您可以新增支援資訊,協助重現和解決錯誤。
以下提供一些搜尋秘訣。
搜尋已關閉和開啟的錯誤。
在進階搜尋頁面,您可以清除「狀態」欄位,避免依據狀態進行篩選。
跨不同版本的 Tomcat 搜尋。
在錯誤資料庫中,Tomcat 由多個「產品」表示。同一個問題應只回報一次,但修正程式可能套用於不同的 Tomcat 版本。執行此動作時,錯誤回報會在不同的產品之間移動。原本針對 Tomcat 9 回報的錯誤會移至 Tomcat 8,之後可能移至 Tomcat 7。因此,一次搜尋所有版本是有意義的。
以下是支援產品的快速清單
- Tomcat 11、Tomcat 10、Tomcat 9 和 Tomcat 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 標籤庫 子專案
不只搜尋摘要欄位,也搜尋註解欄位
在進階搜尋頁面開啟「詳細錯誤資訊」,然後在「註解」欄位輸入您的查詢。
您可以將結果限制為最近變更的問題。
在進階搜尋頁面開啟「依變更歷程搜尋」,然後在「介於」欄位對的第一個欄位輸入「
-2m
」,將結果限制為過去 2 個月變更的問題。有些錯誤不屬於 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.exe
、tomcatNw.exe
服務啟動器由 Apache Commons Daemon 專案提供。
使用該專案的術語,*nixes 啟動器稱為
jsvc
,而 Windows 啟動器稱為procrun
。Tomcat 發行版中的tomcatN.exe
和tomcatNw.exe
程式只是從 Apache Commons Daemon 二進位檔發行版重新命名為prunsrv.exe
和prunmgr.exe
。DBCP 資料庫池實作 –
tomcat-dbcp.jar
。此池實作由 Apache Commons Pool 和 Apache 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,請參閱下列參考文件
- Apache Tomcat 的儲存庫存取
- 閱讀原始程式碼散佈中的 BUILDING.txt
若要準備文件修補程式
閱讀原始程式碼散佈中 BUILDING.txt 檔案中關於建置文件的區段。通常 Tomcat 版本的文件位於原始程式碼中的 webapps/docs/
目錄,可以使用 ant build-docs
指令建置。
若要建置文件,擁有 Java 執行時期和 Apache Ant 副本就已足夠。編譯 Tomcat 程式碼應無必要。
一般參考
Apache 軟體基金會指南
一般 Subversion 文件
安全性問題
與安全性相關的錯誤特別令人擔憂。如果您有已驗證的安全性錯誤要回報,請不要將其張貼到公開電子郵件清單,也不要提交錯誤回報。請參閱安全性回報頁面,了解如何回報這些錯誤。