You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至Tomcat 10后出现LegacyCookieProcessor类找不到异常的问题

Tomcat 10.1.x 中 LegacyCookieProcessor 找不到类的问题解决

问题描述

我在tomcat/conf/context.xml中配置了:

<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" sameSiteCookies="none"/>

使用tomcat:10.1.2-jdk17-temurin镜像迁移至Tomcat 10后,抛出类找不到异常:

Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.http.LegacyCookieProcessor
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:102)
    at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1264)
    ... 58 more

但Tomcat 10.0官方文档显示该类仍受支持,请问遗漏了什么?

问题原因

核心是Tomcat 10子版本的包路径变更:

  • Tomcat 10.0.x系列中,LegacyCookieProcessor确实位于org.apache.tomcat.util.http包下,和文档描述一致
  • 但Tomcat 10.1.x系列开始,该类被迁移到了org.apache.tomcat.util.http.legacy子包,你使用的tomcat:10.1.2-jdk17-temurin属于10.1.x版本,原配置的包路径自然找不到类

解决方案

有两种可行方案:

  • 方案一:适配Tomcat 10.1.x版本,修改context.xml中的类路径:
    <CookieProcessor className="org.apache.tomcat.util.http.legacy.LegacyCookieProcessor" sameSiteCookies="none"/>
    
  • 方案二:保持原配置不变,切换到Tomcat 10.0.x系列的镜像,比如tomcat:10.0.27-jdk17-temurin(选择对应JDK17的10.0.x最新稳定版本)

内容的提问来源于stack exchange,提问作者Vojtěch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:25:29