往年公告可在此处找到
内容
旧新闻
2024-12-09 Tomcat 11.0.2 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.2 版本。此版本实现了 Jakarta EE 11 平台规范的一部分。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 为 WebDAV 和默认 Servlet 添加了强 ETag 支持,通过将 useStrongETags 初始化参数设置为 true 即可启用。生成的 ETag 将是资源内容的 SHA-1 校验和。
- 在 RateLimitFilter 中添加了对 HTTP (RFC 草案) RateLimit 标头字段的支持。基于 Chenjp 提供的拉取请求 #775。
- 将 Tomcat 的 Commons DBCP 分支更新到 2.13.0。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 变更日志中找到。
2024-12-09 Tomcat 9.0.98 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.98 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.97 相比的显著变化包括:
- 为 WebDAV 和默认 Servlet 添加了强 ETag 支持,通过将 useStrongETags 初始化参数设置为 true 即可启用。生成的 ETag 将是资源内容的 SHA-1 校验和。
- 在 RateLimitFilter 中添加了对 HTTP (RFC 草案) RateLimit 标头字段的支持。
- 将 Tomcat 的 Commons DBCP 分支更新到 2.13.0。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-12-09 Tomcat 10.1.34 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.34 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 为 WebDAV 和默认 Servlet 添加了强 ETag 支持,通过将 useStrongETags 初始化参数设置为 true 即可启用。生成的 ETag 将是资源内容的 SHA-1 校验和。
- 在 RateLimitFilter 中添加了对 HTTP (RFC 草案) RateLimit 标头字段的支持。基于 Chenjp 提供的拉取请求 #775
- 将 Tomcat 的 Commons DBCP 分支更新到 2.13.0。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-11-11 Tomcat 10.1.33 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.33 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 修复了改进 69333 导致的回归问题,该问题导致在使用标签池时调用标签释放,而在不使用时则跳过。补丁由 Michal Sobkiewicz 提交。
- 进一步的 WebDAV 修复和改进。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-11-10 Tomcat 11.0.1 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.1 版本。此版本实现了 Jakarta EE 11 平台规范的一部分。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 修复了改进 69333 导致的回归问题,该问题导致在使用标签池时调用标签释放,而在不使用时则跳过。补丁由 Michal Sobkiewicz 提交。
- 进一步的 WebDAV 修复和改进。
- 恢复为 Class.getProtectionDomain().getCodeSource().getLocation() 提供一个值(而非 null),因为许多库和 JRE 功能即使在未使用 SecurityManager 的情况下也依赖于此值不为 null。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 变更日志中找到。
2024-11-09 Tomcat 9.0.97 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.97 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.96 相比的显著变化包括:
- 修复了改进 69333 导致的回归问题,该问题导致在使用标签池时调用标签释放,而在不使用时则跳过
- 进一步的 WebDAV 修复和改进
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-10-09 Tomcat 10.1.31 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.31 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- WebDAV 的多项修复和改进
- 对最近为 HTTP/2 添加的请求/响应回收功能的改进
- 改进 Tomcat Native 在 GC 期间的稳定性
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-10-09 Tomcat 11.0.0 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0 版本。此版本面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- WebDAV 的多项修复和改进
- 对最近为 HTTP/2 添加的请求/响应回收功能的改进
- 改进 Tomcat Native 在 GC 期间的稳定性
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 变更日志中找到。
2024-10-08 Tomcat 9.0.96 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.96 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.95 相比的显著变化包括:
- WebDAV 的多项修复和改进
- 对最近为 HTTP/2 添加的请求/响应回收功能的改进
- 改进 Tomcat Native 在 GC 期间的稳定性
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-09-16 Tomcat 11.0.0-M26 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M26 (beta) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 修复 11.0.0-M25 中引入的 HTTP/2 支持中的回归问题
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (beta) 变更日志中找到。
2024-09-17 Tomcat 10.1.30 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.30 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 修复 10.1.29 中引入的 HTTP/2 支持中的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-09-17 Tomcat 9.0.95 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.95 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.94 相比的显著变化包括:
- 修复 9.0.94 中引入的 HTTP/2 支持中的回归问题
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-09-10 Tomcat 10.1.29 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.29 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 如果 HTTP/2 客户端在请求正文完全写入之前重置流,请确保通过调用 ReadListener.onErrror() 通知任何 ReadListener。
- 在 WebSocket 消息处理期间(例如在带有 @onMessage 注解的方法中)抛出的异常不应自动导致连接关闭。应用程序应处理该异常并决定是否关闭连接。
- 纠正了分块请求体非阻塞读取修复中的回归问题,该问题导致在没有数据可读时
InputStream.available()
返回非零值。在某些情况下,这可能导致阻塞读取在等待更多数据时阻塞,而不是返回已接收的数据。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-09-10 Tomcat 9.0.94 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.94 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.93 相比的显著变化包括:
- 如果 HTTP/2 客户端在请求正文完全写入之前重置流,请确保通过调用 ReadListener.onErrror() 通知任何 ReadListener
- 在 WebSocket 消息处理期间(例如在带有 @onMessage 注解的方法中)抛出的异常不应自动导致连接关闭。应用程序应处理该异常并决定是否关闭连接。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-09-10 Tomcat 11.0.0-M25 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M25 (beta) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 实施 Jakarta Servlet 项目的最新澄清:如果声明了内容长度,则在将指定数量的字节写入响应后,后续写入应触发 IOException
- 如果 HTTP/2 客户端在请求正文完全写入之前重置流,请确保通过调用 ReadListener.onErrror() 通知任何 ReadListener
- 在 WebSocket 消息处理期间(例如在带有 @onMessage 注解的方法中)抛出的异常不应自动导致连接关闭。应用程序应处理该异常并决定是否关闭连接。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (beta) 变更日志中找到。
2024-08-06 Tomcat 10.1.28 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.28 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 添加对 RFC 8297 (Early Hints) 的支持。应用程序可以通过将 HttpServletResponse 转换为 org.apache.catalina.connector.Reponse,然后调用 void sendEarlyHints() 方法来使用此功能
- 默认情况下,使 HTTP/2 与 HTTP/1.1 对齐,并回收容器内部请求和响应处理对象。此行为可以通过 HTTP/2 升级协议上的新 discardRequestsAndResponses 属性进行控制。
- 确保从 Statement 方法 executeQuery()、getResultSet() 和 getGeneratedKeys() 返回的语句在返回给调用者之前正确封装。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-08-06 Tomcat 9.0.93 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.93 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.91 相比的显著变化包括:
- 默认情况下,使 HTTP/2 与 HTTP/1.1 对齐,并回收容器内部请求和响应处理对象。此行为可以通过 HTTP/2 升级协议上的新 discardRequestsAndResponses 属性进行控制。
- 为 FFM 添加 OpenSSL 支持。使用此功能需要 Java 22 或更高版本。
- 添加对 RFC 8297 (Early Hints) 的支持。应用程序可以通过将 HttpServletResponse 转换为 org.apache.catalina.connector.Reponse,然后调用 void sendEarlyHints() 方法来使用此功能。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-08-06 Tomcat 11.0.0-M24 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M24 (beta) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 默认情况下,使 HTTP/2 与 HTTP/1.1 对齐,并回收容器内部请求和响应处理对象。此行为可以通过 HTTP/2 升级协议上的新 discardRequestsAndResponses 属性进行控制。
- 为 LibreSSL 和 BoringSSL 支持添加 FFM 兼容方法。
- 添加对 RFC 8297 (Early Hints) 的支持。应用程序可以通过将 HttpServletResponse 转换为 org.apache.catalina.connector.Reponse,然后调用 void sendEarlyHints() 方法来使用此功能。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (beta) 变更日志中找到。
2024-07-24 Tomcat Native 2.0.8 发布
Apache Tomcat 项目荣幸地宣布发布 Tomcat Native 2.0.8 版本。与 2.0.7 相比的显著变化包括:
- 修复了在 Windows 上调用 SSLContext.setCACertificate() 时,如果 caCertificateFile 为 null 而 caCertificatePath 非 null 导致崩溃的问题
- 此版本中的 Windows 二进制文件已使用 OpenSSL 3.0.14 构建
下载 | 2.0.8 变更日志
2024-07-12 Tomcat 10.1.26 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.26 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 将使用 FFM 的 OpenSSL 支持移动到一个名为 tomcat-coyote-ffm.jar 的单独 JAR 文件中,其清单中声明支持 Java 22。
- 在使用 JAR 文件中打包的标签文件中的 include 指令时,确保 include 指令被正确处理。
- 扩展 Authenticator 属性 allowCorsPreflight 的过滤器值实现,使其适用于所有与 CORS 过滤器配置的 URL 模式匹配的请求,而不仅仅是在 CORS 过滤器映射到 /* 时才适用
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-07-08 Tomcat 9.0.91 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.90 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.89 相比的显著变化包括:
- 在使用 JAR 文件中打包的标签文件中的 include 指令时,确保 include 指令被正确处理。
- 扩展 Authenticator 属性 allowCorsPreflight 的过滤器值实现,使其适用于所有与 CORS 过滤器配置的 URL 模式匹配的请求,而不仅仅是在 CORS 过滤器映射到 /* 时才适用
- 添加仅测试构建目标,以允许只运行测试套件,支持 Java 版本低至运行 Tomcat 所支持的最低版本。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-07-05 Tomcat 11.0.0-M22 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M22 (beta) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 将使用 FFM 的 OpenSSL 支持移动到一个名为 tomcat-coyote-ffm.jar 的单独 JAR 文件中,其清单中声明支持 Java 22。
- 在使用 JAR 文件中打包的标签文件中的 include 指令时,确保 include 指令被正确处理。
- 扩展 Authenticator 属性 allowCorsPreflight 的过滤器值实现,使其适用于所有与 CORS 过滤器配置的 URL 模式匹配的请求,而不仅仅是在 CORS 过滤器映射到 /* 时才适用
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (beta) 变更日志中找到。
2024-06-19 Tomcat 10.1.25 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.25 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 确保通过 JAR 文件部署的静态资源在上下文配置为使用布隆过滤器时仍然可访问。基于 bergander 提供的拉取请求 #730。
- 更新到 Commons Daemon 1.4.0
- HTTP/2 流和超时方面的改进
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-06-19 Tomcat 9.0.90 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.90 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.89 相比的显著变化包括:
- 确保通过 JAR 文件部署的静态资源在上下文配置为使用布隆过滤器时仍然可访问。
- 更新到 Commons Daemon 1.4.0。
- Connector 的 discardFacades 属性的默认值现在为 true,以提高安全性。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-06-18 Tomcat 11.0.0-M21 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M21 (beta) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 确保通过 JAR 文件部署的静态资源在上下文配置为使用布隆过滤器时仍然可访问。基于 bergander 提供的拉取请求。
- 在 Connector 元素上添加任务队列大小配置,与 Executor 元素类似,以保持一致性。
- 更新到 Commons Daemon 1.4.0
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (beta) 变更日志中找到。
2024-05-13 Tomcat 10.1.24 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.24 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 更正异步请求的错误处理
- 重构 HTTP 标头解析以使用通用解析代码,并修复包含尾部字段的分块请求体的非阻塞读取
- WebDAV 锁定处理修复
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-05-07 Tomcat 9.0.89 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.89 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.88 相比的显著变化包括:
- 重构 HTTP 标头解析以使用通用解析代码,并修复包含尾部字段的分块请求体的非阻塞读取。
- 为 AccessLogValve 和 ExtendedAccessLogValve 添加更多时间尺度选项。
- WebDAV 锁定处理修复。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-05-08 Tomcat 11.0.0-M20 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M20 (alpha) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 将 OpenSSL FFM 类添加到 tomcat-embed-core.jar
- 重构 HTTP 标头解析以使用通用解析代码,并修复包含尾部字段的分块请求体的非阻塞读取
- 为 AccessLogValve 和 ExtendedAccessLogValve 添加更多时间尺度选项
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (alpha) 变更日志中找到。
2024-04-23 Tomcat 10.1.23 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.23 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 改进 Catalina 核心中的锁定策略
- 更新基本认证以实现 RFC 7617 的要求
- Apache Commons 依赖项更新
- 当 FFM 可用时添加 OpenSSL 支持
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-04-16 Tomcat 11.0.0-M19 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M19 (alpha) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 完成对 Jakarta EE 11 规范的更新。
- Cookies 标头生成增强功能。
- 修复重新加载 TLS 配置和文件时的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (alpha) 变更日志中找到。
2024-04-16 Tomcat 9.0.88 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.88 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.87 相比的显著变化包括:
- Cookies 标头生成增强功能。
- 修复重新加载 TLS 配置和文件时的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-03-25 Tomcat 10.1.20 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.20 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 修复重新加载 TLS 配置和文件时的回归问题。
- 在成功进行 FORM 认证后恢复已保存的 POST 请求时,确保在恢复请求正文时 URI、查询字符串和协议都不会损坏。
- 对 Writer 和 OutputStream 的错误处理进行对齐。确保在响应被回收后使用其中任何一个都会触发 NullPointerException,前提是 discardFacades 配置为默认值 true。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-03-14 Tomcat 9.0.87 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.87 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.86 相比的显著变化包括:
- 在成功进行 FORM 认证后恢复已保存的 POST 请求时,确保在恢复请求正文时 URI、查询字符串和协议都不会损坏。
- 对 Writer 和 OutputStream 的错误处理进行对齐。确保在响应被回收后使用其中任何一个都会触发 NullPointerException,前提是 discardFacades 配置为默认值 true。
- 使用 Executor 元素配置的标准线程池实现现在实现了 ExecutorService,以更好地支持 NIO2 或其他功能。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-03-14 Tomcat 11.0.0-M18 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M18 (alpha) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 将最低 Java 版本降低到 Java 17
- 在成功进行 FORM 认证后恢复已保存的 POST 请求时,确保在恢复请求正文时 URI、查询字符串和协议都不会损坏。
- 对 Writer 和 OutputStream 的错误处理进行对齐。确保在响应被回收后使用其中任何一个都会触发 NullPointerException,前提是 discardFacades 配置为默认值 true。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (alpha) 变更日志中找到。
2024-02-19 Tomcat 10.1.19 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.19 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 对 CSRF 防御过滤器进行了改进,包括能够跳过为资源名称和子树 URL 模式添加随机数。
- 添加了对在 SSLHostConfigCertificate 实例上配置用户提供的 SSLContext 实例的支持。基于 Hakan Altındağ 提供的拉取请求 #673。
- 审查调试日志的使用,并将跟踪或数据转储操作从调试级别降级到跟踪级别。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-02-19 Tomcat 8.5.99 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 8.5.99 版本。此版本实现了 Java EE 7 平台规范的一部分。与 8.5.98 相比的显著变化包括:
- 对 CSRF 防御过滤器进行了改进,包括能够跳过为资源名称和子树 URL 模式添加随机数。
- 添加了对在 SSLHostConfigCertificate 实例上配置用户提供的 SSLContext 实例的支持。基于 Hakan Altındağ 提供的拉取请求 #673。
- 审查调试日志的使用,并将跟踪或数据转储操作从调试级别降级到跟踪级别。
这些更改以及所有其他更改的完整详细信息可在Tomcat 8 变更日志中找到。
请注意,Apache Tomcat 8.5.x 将于 2024 年 3 月 31 日达到生命周期结束 (EOL)。
2024-02-19 Tomcat 9.0.86 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.86 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.85 相比的显著变化包括:
- 对 CSRF 防御过滤器进行了改进,包括能够跳过为资源名称和子树 URL 模式添加随机数。
- 添加了对在 SSLHostConfigCertificate 实例上配置用户提供的 SSLContext 实例的支持。基于 Hakan Altındağ 提供的拉取请求 #673。
- 审查调试日志的使用,并将跟踪或数据转储操作从调试级别降级到跟踪级别。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-02-19 Tomcat 11.0.0-M17 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M17 (alpha) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 对 CSRF 防御过滤器进行了改进,包括能够跳过为资源名称和子树 URL 模式添加随机数。
- 添加了对在 SSLHostConfigCertificate 实例上配置用户提供的 SSLContext 实例的支持。基于 Hakan Altındağ 提供的拉取请求 #673。
- 审查调试日志的使用,并将跟踪或数据转储操作从调试级别降级到跟踪级别。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (alpha) 变更日志中找到。
2024-02-12 Tomcat Native 1.3.0 发布
Apache Tomcat 项目荣幸地宣布发布 Tomcat Native 1.3.0 版本。这是 1.3.x 分支的第一个版本。与 1.2.x 相比的显著变化包括:
- 支持的最低 OpenSSL 版本为 1.1.1
- 支持的最低 APR 版本为 1.6.3
- 此版本中的 Windows 二进制文件已使用 OpenSSL 3.0.13 构建
下载 | 1.3.0 变更日志
2024-02-08 Tomcat Native 2.0.7 发布
Apache Tomcat 项目荣幸地宣布发布 Tomcat Native 2.0.7 版本。与 2.0.6 相比的显著变化包括:
- 使 Windows 上的默认密码短语提示与 httpd 对齐
- 此版本中的 Windows 二进制文件已使用 OpenSSL 3.0.13 构建
下载 | 2.0.7 变更日志
2024-02-06 用于 Jakarta EE 的 Tomcat 迁移工具 1.0.8 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat Jakarta EE 迁移工具 1.0.8 版本。此版本包含与 1.0.7 版本相比的一些错误修复和改进。
此版本中的显著变化包括:
- 识别 .ear 文件为归档文件
- 在转换过程中包含 .jspf 和 .tagf 文件
- 更新依赖项
这些更改以及所有其他更改的完整详细信息可在变更日志中找到。
2024-01-09 Tomcat 8.5.98 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 8.5.98 版本。此版本实现了 Java EE 7 平台规范的一部分。与 8.5.97 相比的显著变化包括:
- 修复 NIO2 连接器的虚拟线程支持问题。
- 纠正了修复 67675 中的回归问题,该问题导致无法正确解析未指定显式伪随机函数并依赖默认值的 PKCS#8 格式密钥的 TLS 密钥文件。这通常影响 OpenSSL 1.0.2 生成的密钥。
- 允许在内省的 mbean 上进行多个同名操作,修复了引入第二个 addSslHostConfig() 方法导致的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 8 变更日志中找到。
请注意,Apache Tomcat 8.5.x 将于 2024 年 3 月 31 日达到生命周期结束 (EOL)。
2024-01-09 Tomcat 10.1.18 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 10.1.18 版本。此版本实现了 Jakarta EE 10 平台规范的一部分。
在 Tomcat 9 及更早版本上运行的应用程序,未经更改将无法在 Tomcat 10 上运行。为 Tomcat 9 及更早版本设计的基于 Java EE 的应用程序可以放置在 $CATALINA_BASE/webapps-javaee
目录中,Tomcat 会自动将其转换为 Jakarta EE 并复制到 webapps 目录。此转换是使用用于 Jakarta EE 的 Apache Tomcat 迁移工具执行的,该工具也可作为单独的下载用于离线使用。
此版本中的显著变化包括:
- 修复 NIO2 连接器的虚拟线程支持问题。
- 纠正了修复 67675 中的回归问题,该问题导致无法正确解析未指定显式伪随机函数并依赖默认值的 PKCS#8 格式密钥的 TLS 密钥文件。这通常影响 OpenSSL 1.0.2 生成的密钥。
- 允许在内省的 mbean 上进行多个同名操作,修复了引入第二个 addSslHostConfig() 方法导致的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 10.1 变更日志中找到。
2024-01-09 Tomcat 9.0.85 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 9.0.85 版本。此版本实现了 Java EE 8 平台规范的一部分。与 9.0.84 相比的显著变化包括:
- 修复 NIO2 连接器的虚拟线程支持问题。
- 纠正了修复 67675 中的回归问题,该问题导致无法正确解析未指定显式伪随机函数并依赖默认值的 PKCS#8 格式密钥的 TLS 密钥文件。这通常影响 OpenSSL 1.0.2 生成的密钥。
- 允许在内省的 mbean 上进行多个同名操作,修复了引入第二个 addSslHostConfig() 方法导致的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 9 变更日志中找到。
2024-01-09 Tomcat 11.0.0-M16 发布
Apache Tomcat 项目荣幸地宣布发布 Apache Tomcat 11.0.0-M16 (alpha) 版本。此版本是一个里程碑版本,面向 Jakarta EE 11。
Tomcat 10 及更高版本的用户应注意,由于 Java EE 转移到 Eclipse 基金会并更名为 Jakarta EE,所有已实现的 API 的主包已从 javax.*
更改为 jakarta.*
。这几乎肯定需要代码更改才能使应用程序从 Tomcat 9 及更早版本迁移到 Tomcat 10 及更高版本。一个迁移工具可用于辅助此过程。
此版本中的显著变化包括:
- 修复 NIO2 连接器的虚拟线程支持问题
- 纠正了修复 67675 中的回归问题,该问题导致无法正确解析未指定显式伪随机函数并依赖默认值的 PKCS#8 格式密钥的 TLS 密钥文件。这通常影响 OpenSSL 1.0.2 生成的密钥。
- 允许在内省的 mbean 上进行多个同名操作,修复了引入第二个 addSslHostConfig() 方法导致的回归问题。
这些更改以及所有其他更改的完整详细信息可在Tomcat 11 (alpha) 变更日志中找到。