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

升级嵌入式Jetty从9.4.53到12.0.9遇问题求助

问题1:找不到Jetty 12.0.9版本的jetty-annotations、jetty-webapp、jetty-servlets

Jetty 12.x进行了模块化重构,按Java EE版本(EE8/EE9/EE10)拆分了模块,原artifactId不再直接使用。你需要根据项目使用的Servlet版本选择对应模块:

  • 若使用Servlet 5.0(Jakarta EE 9):
    • jetty-annotations → org.eclipse.jetty.ee9:jetty-ee9-annotations:12.0.9
    • jetty-webapp → org.eclipse.jetty.ee9:jetty-ee9-webapp:12.0.9
    • jetty-servlets → org.eclipse.jetty.ee9:jetty-ee9-servlets:12.0.9
  • 若使用Servlet 6.0(Jakarta EE 10):
    • jetty-annotations → org.eclipse.jetty.ee10:jetty-ee10-annotations:12.0.9
    • jetty-webapp → org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.9
    • jetty-servlets → org.eclipse.jetty.ee10:jetty-ee10-servlets:12.0.9
  • 若仍使用Servlet 4.0(Java EE 8):
    • jetty-annotations → org.eclipse.jetty.ee8:jetty-ee8-annotations:12.0.9
    • jetty-webapp → org.eclipse.jetty.ee8:jetty-ee8-webapp:12.0.9
    • jetty-servlets → org.eclipse.jetty.ee8:jetty-ee8-servlets:12.0.9

确保所有Jetty依赖版本统一为12.0.9,避免混合不同版本导致依赖冲突。

问题2:java.lang.InstantiationError: org.eclipse.jetty.util.Pool及jetty.xml配置错误

这个错误是因为Jetty 12对线程池的实现和配置方式做了大幅修改,同时你的jetty.xml仍使用Jetty 9的DTD,配置逻辑过时。

修正后的jetty.xml配置(适配Jetty 12.0.9)

<?xml version="1.0"?>
<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <!-- 配置线程池 -->
  <Set name="threadPool">
    <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
      <Set name="minThreads">4</Set>
      <Set name="maxThreads">200</Set>
      <Set name="idleTimeout">30000</Set>
    </New>
  </Set>
</Configure>

关键修改点说明

  1. 移除Jetty 9的DTD声明:Jetty 12不再依赖旧DTD,使用默认的XML配置解析即可。
  2. 线程池配置方式变更:Jetty 12中Server的threadPool需要直接实例化QueuedThreadPool(或其他实现类),而非通过<Get>获取默认实例后修改——旧版本的默认线程池实现类和初始化逻辑已改变,直接获取会导致实例化错误。
  3. 类路径检查:确保项目中只存在Jetty 12.0.9的jetty-util依赖,没有残留Jetty 9/11版本的该包,否则会出现类版本冲突。

另外,关于SLF4J的警告和反射性能提示:

  • SLF4J绑定为Log4jLoggerFactory是正常现象,若无需调整可忽略;
  • sun.reflect.Reflection.getCallerClass不支持的警告是Java 17移除了该API导致,若使用的日志框架或Jetty依赖中有调用该方法的代码,建议升级对应依赖版本(比如确保Log4j2版本适配Java 17)。

内容的提问来源于stack exchange,提问作者user2007260

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:42:05