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

使用Jetty Client 11.0.0发起请求时遇NoClassDefFoundError问题求助

解决Jetty Client 11.0.0的NoClassDefFoundError问题

错误根源

你遇到的NoClassDefFoundError是因为仅引入了jetty-client的jar包,缺少Jetty运行必需的核心依赖组件。ContainerLifeCycle属于Jetty的核心工具模块,必须将相关依赖jar加入类路径才能正常加载。

解决方案

1. 使用构建工具管理依赖(推荐)

如果用Maven,在pom.xml中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-client</artifactId>
        <version>11.0.0</version>
    </dependency>
</dependencies>

Maven会自动下载jetty-client所需的所有传递依赖(包括jetty-util、jetty-io、jetty-http等核心模块),无需手动管理jar包。

如果用Gradle,添加:

dependencies {
    implementation 'org.eclipse.jetty:jetty-client:11.0.0'
}

2. 手动添加依赖jar包

若必须手动管理,需下载以下Jetty 11.0.0版本的jar包,并全部加入项目类路径:

  • jetty-client-11.0.0.jar
  • jetty-util-11.0.0.jar
  • jetty-io-11.0.0.jar
  • jetty-http-11.0.0.jar
  • jetty-client-transport-11.0.0.jar

3. 修正测试代码的两处问题

原代码存在两个会导致运行错误的问题,需修改:

package currencyconverter;

import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;

import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse;

public class urler {
    public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException, IOException {
        HttpClient httpClient = new HttpClient();
        // 必须启动HttpClient实例才能发起请求
        httpClient.start();
        
        // URL必须包含协议头(http://或https://)
        ContentResponse response = httpClient.GET("http://example.com");
        System.out.println(response.getContentAsString());
        
        // 使用完毕后关闭HttpClient,避免资源泄漏
        httpClient.stop();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:15:19