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

启动Solr 8.11.2时出现jakarta.servlet.http.HttpServletResponse类未找到错误

Java 11 + Solr 8.11.2(内置Jetty 9.4)启动时出现NoClassDefFoundError: jakarta/servlet/http/HttpServletResponse

启动时触发的核心错误:

java.lang.NoClassDefFoundError: jakarta/servlet/http/HttpServletResponse

完整堆栈信息:

java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
        at org.eclipse.jetty.start.Main.start(Main.java:491)
        at org.eclipse.jetty.start.Main.main(Main.java:77)
Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/http/HttpServletResponse
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
...
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.construct(XmlConfiguration.java:1031)
...
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:380)
        at org.eclipse.jetty.xml.XmlConfiguration.lambda$main$3(XmlConfiguration.java:1893)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1857)
        ... 7 more
Caused by: java.lang.ClassNotFoundException: jakarta.servlet.http.HttpServletResponse
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 23 more

我们知晓javax.*到jakarta.*的迁移,但不理解为何会尝试加载jakarta.类。Jetty 9.4仍使用/提供javax.,且引发错误的jetty.xml配置文件中也无jakarta相关引用。


排查与解决方向

  • 检查类路径冲突:排查所有加载的jar包,确认是否存在jakarta.servlet-api-*.jar或其他包含jakarta.servlet类的依赖。Jetty 9.4依赖的是javax.servlet-api-3.1.0.jar,两者不能共存,移除所有Jakarta版本的Servlet API jar包。
  • 清理第三方插件/扩展:检查Solr的solrhome/lib、各个core的lib目录,以及自定义添加的扩展,移除任何依赖Jakarta Servlet的组件。Solr 8.11.2不兼容Jakarta版本的插件。
  • 恢复启动脚本默认配置:若手动修改过solr.sh/solr.cmd中的类路径参数,确认是否误添加了指向Jakarta API的路径,恢复为默认配置。
  • 清理缓存目录:删除Jetty的工作目录(通常在Solr根目录下的work文件夹),以及Java临时目录中Jetty相关的缓存文件,避免残留类文件导致加载异常。

内容的提问来源于stack exchange,提问作者Gaël J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:43:22