Content

Table of Contents

Before you report a bug

Apache Tomcat社区由使用Apache Tomcat的人员,帮助回答讨论列表中的问题,提供文档和补丁的人员以及开发和维护Apache Tomcat的代码的人员组成. 几乎所有每天协助解决错误报告的人都出于各种原因来执行此操作,并且几乎所有人都在自己的时间执行此操作.

报告的许多错误最终不是Apache Tomcat代码中的错误,而是由于配置错误,由已安装的应用程序,操作系统等引起的问题.

在报告错误之前,请竭尽全力自己解决问题.

如果需要帮助,请在用户 邮件列表上询问.

本文档的其余部分将指导您使用可用于解决问题的资源.

Bugzilla is not a support forum

Bugzilla是跟踪错误报告和功能请求的工具. 它用于组织有关Apache Tomcat项目的工作,这样就不会忘记这些问题并记录如何解决这些问题.

Bugzilla 并不是询问有关如何配置自己的系统或如何解释某些您不了解的错误消息或行为的问题的地方. 如有疑问,请在用户 邮件列表中询问.

当您收集了足够的信息来诊断问题时,并且确实可以在Apache Tomcat中修复该错误,请随时为其创建或重新打开Bugzilla问题. 您可以在邮件列表档案中找到讨论的链接,并将其包含在错误报告中.

Resources to help resolve Apache Tomcat problems

这里有一些资源可用于帮助您解决在报告错误之前遇到的问题.

Problem troubleshooting

  • 文档 –请查看有关所使用的Apache Tomcat版本的文档. 您可能会在文档中解决您所面临的问题. 注意,该文档是可搜索的.
  • 日志 –尝试诊断问题时,Apache Tomcat生成的日志可能是宝贵的资源. 请检查它们. 您可能希望在Apache Tomcat配置中启用调试输出,以便您有更多信息来帮助诊断问题. 您可能需要配置访问日志(阀门),以记录到达Tomcat的请求以及Tomcat对它们的响应.
  • Wiki –搜索Wiki . 那是每个人都可以贡献的非正式文件.
  • FAQ-搜索属于Wiki的Tomcat常见问题 .

Apache Tomcat discussion lists

您很可能不是第一个遇到问题的人. 其他人可能已经找到了解决方案. 邮件列表档案可能包含一些讨论,可以帮助您解决问题.

有关列表的更多信息,请参见邮件列表页面.

另请参阅" 查找帮助"页面.

Known issues

请搜索错误数据库,以查看是否已报告您所看到的错误. 请查看更改日志页面上已修复的错误. 还可以提供尚未发布的Tomcat版本的变更日志. 更多细节在下面.

Recent version

尝试使用最新发行的Apache Tomcat版本重现您的问题.

Looking for known issues

Search the bug database

请搜索错误数据库,以查看是否已报告您所看到的错误.

  • 该错误可能已经得到修复,并且可以在更高版本或每晚构建的版本中使用.
  • 可能有人报告了该错误,您可以添加支持信息以帮助重现和解决该错误.

搜索页面在这里 . 还有高级搜索页面.

以下是一些搜索提示.

  1. 搜索已关闭的错误以及已打开的错误.

    在高级搜索页面上,您可以清除"状态"字段,以避免按状态过滤.

  2. 搜索不同版本的Tomcat.

    在错误数据库中,Tomcat由多个"产品"表示. 相同的问题应该只报告一次,但是该修复程序可以应用于不同的Tomcat版本. 这样做时,错误报告将在不同产品之间移动. 最初针对Tomcat 9报告的错误已移至Tomcat 8,然后可能移至Tomcat7.因此,一次搜索所有版本是有意义的.

    以下是受支持产品的快速列表:

    • Tomcat 9Tomcat 8Tomcat 7 – Tomcat 9.0.x,8.5.x和7.0.x
    • Tomcat连接器 – Tomcat与其他Web服务器的集成
    • Tomcat本机 –基于APR的本机HTTP和AJP连接器,用于Tomcat
    • Tomcat模块 –其他Tomcat组件
    • Taglibs -Apache Taglibs子项目
  3. 不仅搜索摘要字段,还搜索评论一

    在高级搜索页面上,打开"详细的错误信息",然后在"注释"字段中键入查询.

  4. 您可以将结果限制为最近更改的问题.

    在高级搜索页面上,打开"按更改历史记录搜索",然后在"之间"字段对中的第一个字段中键入" -2m ",以将结果限制为最近2个月内已更改的问题.

  5. 有些错误不属于Tomcat.

    Tomcat捆绑了其他几个项目的库. 有关详细信息,您可以在您的发行版中看到RELEASE-NOTES和NOTICE文件. 更多详细信息在下面的单独部分中.

Changelog

如果您正在寻找最近解决的问题,那么可以考虑几个地方.

  • 发行版本的变更日志文件

    这些已发布在Tomcat网站上.

  • 尚未发布版本的变更日志文件

    这些在源代码中可用.

    它们为XML格式,并附有样式表. 因此,现代的Web浏览器可以很好地显示它们.

    每晚的文档版本中也提供了这些文件. 有关详细信息,请参见Buildbot页面.

Links:

Product 变更日志(已发布) 变更日志(未发布)
Tomcat 9.0(主干) changelog.html changelog.html - CI
的Tomcat 8.5 changelog.html changelog.html - CI
Tomcat 7.0 changelog.html changelog.html - CI
Tomcat连接器 changelog.html changelog.xml
Tomcat本机 changelog.html changelog.xml

Third party components

Tomcat捆绑了其他几个项目的库. 有关详细信息,请参见发行版中的RELEASE-NOTES和NOTICE文件. 在源发行版的build.properties.default文件中定义了用于构建Tomcat的组件的版本.

值得注意的组件是:

  • 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项目提供.

    这两个项目中的类被重命名为不同的包,以避免在Web应用程序使用相同的库,将它们重新编译并打包到单个JAR文件中的情况下发生冲突.

  • JDBC数据库池实现– tomcat-jdbc.jar .

    该池实现在Tomcat 7及更高版本中可用,并且来自Tomcat模块中的 jdbc-pool项目. 该库是与主要Tomcat一起开发的.

  • Tomcat Maven插件子项目在JIRA数据库中跟踪其问题.

Reporting Apache Tomcat bugs

请确保问题是Apache Tomcat中的错误,而不是Web应用程序中的错误.

请注意,这与安全相关的问题不应通过Bugzilla的报告.

How to write a bug report

Please provide as much information as possible. It is very hard to fix a bug if the person looking into the problem cannot reproduce it. See also Bug Writing Guidelines.

错误提交从这里开始. 您必须在错误报告中包括以下信息:

  • 产品 . 以下是受支持的产品列表:

    • Tomcat 9 – Tomcat 9.0.x和tomcat.apache.org网站
    • Tomcat 8 – Tomcat 8.5.x
    • Tomcat 7 – Tomcat 7.0.x
    • Tomcat连接器 – Tomcat与其他Web服务器的集成. 适用于Apache HTTPD和其他Web服务器的mod_jk模块.
    • Tomcat本机 –使用本机代码并与Apache APR和OpenSSL库链接的Tomcat的HTTP和AJP连接器
    • Tomcat模块 –其他Tomcat组件,例如jdbc-pool
    • Taglibs -Apache Taglibs子项目
  • 版本 – Apache Tomcat版本.

    请不仅从列表中选择它,还要在您的文本中提及它. 错误描述可以更新,因此在文本中也要提及该版本.

  • 组件 –具有错误的组件.

    如果您不知道,那就猜.

  • 平台操作系统 – Tomcat运行的硬件平台和操作系统.

  • 严重性 –对于常见的错误报告和增强要求的enhancement ,这是normal的.

    如果您倾向于将其标记为" critical ,则可能是做错了. 该问题可能已经已知并已解决,或者根本不是问题.

  • 配置细节

    请在您的文字中提及以下内容:

    • Java版本–用于运行Tomcat的Java运行时环境的供应商和版本.
    • 如果在Apache HTTPD或其他Web服务器后面使用了Tomcat –其版本以及配置方式.
    • 正在使用的Tomcat连接器. Tomcat中有几种连接器实现. 在Tomcat启动期间,日志中会显示正在使用哪一个.
  • Attachments

    附加配置文件和Tomcat日志文件(如果它们有助于跟踪该错误).

  • Reproducer

    请描述如何在全新的Tomcat安装上重现您的问题. 如果可以,请提供一个简单的示例Web应用程序来演示该问题.

How to submit patches and enhancement requests

对Tomcat的增强请求是使用与错误报告相同的过程提交的,但是在" 严重性"字段中,您将选择" enhancement "值.

对于通过GitHub提供的组件,您可以提供一个建议的补丁程序作为请求请求. 另外,您可以将建议的补丁附加到Bugzilla问题. 提供补丁程序时,请注明适用于哪个版本的源代码. 欢迎使用任何补丁程序,但我们更喜欢使用Unified Diff格式的补丁程序. 这些可以使用diff -u命令或svn diffgit diff命令生成.

要修补和构建Apache Tomcat,请参阅以下参考资料:

  • Apache Tomcat的存储库访问
  • 在源代码发行版中阅读BUILDING.txt

准备文档补丁:

阅读有关在源发行版的BUILDING.txt文件中构建文档的部分. 通常,Tomcat版本的文档位于源代码的webapps/docs/目录中,并且可以使用ant build-docs命令进行ant build-docs .

要构建文档,拥有Java运行时和Apache Ant副本就足够了. 不需要编译Tomcat代码.

通用参考文献:

Security Issues

与安全相关的错误特别受关注. 如果您有已验证的安全错误要报告,请既不要将其发布到公共电子邮件列表中,也不要提交错误报告. 有关如何报告安全性的信息,请参见" 安全性报告"页面.

by  ICOPY.SITE