Apache Tomcat 三个分支发布了更新,分别是 10.0.2、9.0.43 和 8.5.63。
其中 Tomcat 10.0.2 是 10.0.x 系列的首个稳定版本,目标平台是 Jakarta EE 9。官方表示,Tomcat 10 及更高版本的用户应注意,作为从 Java EE 迁移到 Eclipse Foundation 的的一部分,从 Java EE 迁移到 Jakarta EE 的结果是所有已实现 API 的主要软件包已从javax.*
改为jakarta.*
,因此部分项目会需要更改代码,以使应用程序能够从 Tomcat 9 及更低版本迁移到 Tomcat 10 及更高版本。官方表示正在开发一种迁移工具来辅助此过程。
Tomcat 10.0.2 值得关注的更新:
- 在 Java 16 或更高版本上运行时,增加为 NIO 使用 Unix 域套接字 (Unix domain sockets) 的支持
- 增加一个新的
StringInterpreter
接口,此接口允许应用程序提供自定义的字符串属性值以在 JSP 中进行类型转换。此功能允许其他应用程序提供针对该应用程序进行优化的转换实现。 - 添加
peerAddress
到 coyote 请求中,该请求包含直接连接对等方的 IP 地址。如果反向代理位于 Tomcat 的前面,并且使用了 RemoteIp(Valve|Filter),则 peerAddress 可能与 remoteAddress 不同。remoteAddress 可能包含反向代理前面的客户端地址,而不是代理本身的地址。
详情查看 Tomcat 10 changelog。
下载地址 https://tomcat.apache.org/download-10.cgi
Tomcat 9.0.43 值得关注的更新和 10.0.2 一致,详情查看 Tomcat 9 changelog。
Tomcat 8.5.63 值得关注的更新内容:
- 增加一个新的
StringInterpreter
接口,此接口允许应用程序提供自定义的字符串属性值以在 JSP 中进行类型转换。此功能允许其他应用程序提供针对该应用程序进行优化的转换实现。 - 添加
peerAddress
到 coyote 请求中,该请求包含直接连接对等方的 IP 地址。如果反向代理位于 Tomcat 的前面,并且使用了 RemoteIp(Valve|Filter),则 peerAddress 可能与 remoteAddress 不同。remoteAddress 可能包含反向代理前面的客户端地址,而不是代理本身的地址。 - 对访问日志中需要转义的元素进行转义,以使访问日志被正确解析。
详情查看 Tomcat 8.5 changelog。
下载地址 https://tomcat.apache.org/download-80.cgi