Java 12 JMeter 5 HTTP/2 请求 java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/client/ALPNClientConnectionFactory

2024-02-08

我在 Ubuntu 9.0.4 上使用 Java 12、JMeter 5.1.1,并在尝试发送 HTTP/2 请求时遇到以下异常:

Response code: Non HTTP response code: java.util.concurrent.ExecutionException
Response message: Non HTTP response message: java.lang.IllegalStateException: No Client ALPNProcessors!

响应正文中的堆栈跟踪:

java.util.concurrent.ExecutionException: java.lang.IllegalStateException: No Client ALPNProcessors!
    at org.eclipse.jetty.util.FuturePromise.get(FuturePromise.java:138)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Connection.connect(HTTP2Connection.java:68)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.setConnection(HTTP2Request.java:278)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:138)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:115)
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253)
    at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: java.lang.IllegalStateException: No Client ALPNProcessors!
    at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.<init>(ALPNClientConnectionFactory.java:54)
    at org.eclipse.jetty.http2.client.HTTP2Client.lambda$doStart$1(HTTP2Client.java:155)
    at org.eclipse.jetty.http2.client.HTTP2Client$ClientSelectorManager.newConnection(HTTP2Client.java:438)
    at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:222)
    at org.eclipse.jetty.io.ManagedSelector.access$1500(ManagedSelector.java:60)
    at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:825)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:754)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:672)
    ... 1 more

JMeter 5.1.1 附带jetty-alpn-client-9.4.9.v20180320.jar默认情况下。

然后我从下载 jetty alpn java 客户端库http://central.maven.org/maven2/org/eclipse/jetty/jetty-alpn-java-client/ http://central.maven.org/maven2/org/eclipse/jetty/jetty-alpn-java-client/并将其放入 jmeter 安装的 lib/ 文件夹中并导致此异常:

java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/client/ALPNClientConnectionFactory
    at org.eclipse.jetty.util.FuturePromise.get(FuturePromise.java:138)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Connection.connect(HTTP2Connection.java:68)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.setConnection(HTTP2Request.java:278)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:138)
    at com.blazemeter.jmeter.http2.sampler.HTTP2Request.sample(HTTP2Request.java:115)
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253)
    at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/client/ALPNClientConnectionFactory
    at org.eclipse.jetty.http2.client.HTTP2Client.lambda$doStart$1(HTTP2Client.java:155)
    at org.eclipse.jetty.http2.client.HTTP2Client$ClientSelectorManager.newConnection(HTTP2Client.java:438)
    at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:222)
    at org.eclipse.jetty.io.ManagedSelector.access$1500(ManagedSelector.java:60)
    at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:825)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:754)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:672)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 8 more

我切换到 Java 11 但遇到同样的错误。 任何建议和见解都值得赞赏。


No Client ALPNProcessors!是来自处理 ALPN 的 Jetty 库的消息。

因为你运行在 JDK 12 中(而且我认为与 JDK 11 没有什么大的区别,所以 JDK 12 应该没问题),所以你必须有jetty-alpn-java-clientjar 放在类路径中,以便 Jetty 库能够找到该类的实现ALPNProcessor.Client类(通过ServiceLoader机制),如错误所示,无法找到。

您没有详细说明如何设置 TLS 等,我希望 JMeter 能够jetty-alpn-java-clientjar 已经在类路径中,但显然您的设置(或 JMeter 中)有问题。

我会仔细检查 JMeter 如何配置 TLS;如果它使用标准 JDK 实现,那么它必须具有jetty-alpn-java-clientjar 在类路径中。

如果 JMeter 使用其他 TLS 实现(例如 Conscrypt),那么 Jetty 项目提供类似的库(例如jetty-alpn-conscrypt-clientjar)同样应该位于类路径中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 12 JMeter 5 HTTP/2 请求 java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/client/ALPNClientConnectionFactory 的相关文章

  • 如何使用 JMeter 将 application/x-www-form-urlencoded 参数发送到 RestServer?

    我开发了一个休息服务器 并将其在本地主机中运行 我尝试使用 JMeter 执行测试 发送请求帖子和获取 取决于调用的方法 我已经发送到 Rest 服务器并使用 JMeter 在简单的 post 请求 获取请求 通过 post 发送文件以及通
  • Azure 应用程序网关在进行 JMeter 负载测试时随机遇到 504 网关超时

    我有 1 个应用程序网关 它有 2 个后端 Azure VM 它通过 IIS 托管 ASP CORE REST API 两者都使用端口 80 进行通信 手动测试一切正常 直到我们使用 jmeter 进行 2500 线程 POST 请求负载测
  • 为什么 Android 的 HttpUrlConnection 不支持 HTTP/2?

    我刚刚发现Android推荐的http客户端HttpUrlConnection不支持 HTTP 2 是否有特定原因不在 Android 上使用 HTTP 2 如果你想利用 HTTP 2 你可以使用 OkHttp https github c
  • 使用 Http/2 从 javascript 进行 api 调用

    我知道大多数浏览器支持 http 2 来加载页面 但这是否意味着我在使用 XmlHttpRequest 进行 api 调用时可以利用它 更具体地说 我的问题是 如果我使用 XmlHttpRequest 进行 2 次调用来获取数据 是否可以确
  • 使用 JMeter 将文件上传到 Rest API

    注意 我已经检查过BlazeMeter 教程 https www blazemeter com blog testing advanced rest api file uploads jmeter当我使用 文件上传 选项卡时 它将文档作为正
  • HTTP2 请求示例因 Jmeter4、Java 10 无客户端 ALPNProcessors 崩溃

    我无法使用 Jmeter 4 0 创建 HTTP2 请求 我已经安装了最新的 JDK 和 HTTP 2 协议采样器插件 我还观察到 penJDK8ClientALPNProcessor e23ec5a 不适用于 java 10 0 2 尝试
  • 如何在 JMeter 中使用命令行参数

    我正在使用 Jmeter 测试 API 我想从终端参数化项目的路径 然后我想在 JMeter 中使用此参数 我通过命令行发送的参数 jmeter n t your script jmx Jurl abcdef com 我在用户定义变量中使用
  • 使用参数作为用户定义变量?

    我们在非 GUI 模式下运行测试 并传入各种参数 如服务器 端口 线程等 我们还希望在 GUI 模式下运行测试 并能够在 GUI 中更改这些参数 我想做的是使用 2 个用户定义的变量对象 其中一个包含我们可以编辑的静态数据 另一个包含参数
  • jmeter恒定视频流

    我正在使用 Jmeter 来加载测试视频流 我可以传递登录信息 但我需要让 Jmeter 在提供视频流的页面上 保持 我怎样才能做到这一点 我已经设置了 cookie 管理器 如果视频流不在您的服务器上 您根本不需要测试它 例如 如果您的网
  • 通过 Jmeter 从 Phantomjs 收集客户端性能指标

    在整个 PhantonJS 驱动程序配置中 我们有什么方法可以通过 phantomjs 使用 Jmeter DomLoad WindLoad ResourceCount 资源大小来捕获以下客户端性能指标 Thanks 我建议使用捕获指标WD
  • Rest 服务器(Play Framework)在负载测试期间出现“Read Timed out”异常

    我们正在使用 Play Framework 在 REST 服务器上运行重负载测试 jmeter 350 个线程 35M 总请求 并在大约 2 小时后遇到以下错误 我们删除了其他组件 以便 request 只是接受请求而不执行任何操作 任何人
  • 如何在真实情况下模拟Web应用程序的120个并发用户?

    你如何模拟 gt 120 个并发用户使用负载测试框架 例如 JMeter 据我了解 如果我使用 120 台服务器或 120 个 CPU 核心 则真正的并发是可能的 您如何在真实条件下测试您的网络应用程序或服务 我发现 JMeter 工作得很
  • JMeter:tearDown Thread Group的目的是什么

    我想了解JMeter中tearDown Thread Group的实际用法 在什么场景下可以使用tearDown Thread Group 根据提供的帮助JMeter 拆解线程组 http jmeter apache org userman
  • HTTP2 推送的网络字体未使用

    我正在发送一个Link在 HTTP2 响应中预加载标头 像这个 Link script main js h 1795387974 gt rel preload as script font sourcesanspro regular wof
  • foreach 控制器无法正确处理变量

    我试图循环我的用户定义的变量并将它们添加到 cookie 管理器 我的设置方法如下 但是当我查看结果时 它只需要第一个变量并将其用于所有循环 因此 HTTP Cookie 管理器仅替换第一个 var 这种行为是意外的 我是否设置错误 我添加
  • 在jmeter中运行beanshell脚本时无法导入com.paytm.merchant.CheckSumServiceHelper

    我是 Jmeter 的 JSR223 预处理器的新手 我们刚刚将 Paytm 的支付网关集成到我们的产品中 并且必须使用 Jmeter 运行负载测试 我们必须使用一组值生成校验和 然后将其注入到我们的 Json 负载中 我正在使用 Java
  • Cloud SQL 间歇性通信链路失败

    我在用着jmeter对使用 Cloud SQL 的 GAME Web 服务进行压力测试 我收到间歇性通信链接失败异常 我尝试过使用直接连接和连接池 并且在这两种情况下都看到了异常 随着每秒请求数的增加 异常也会增加 请注意 我们使用的是最高
  • 如何在 OkHttp 上进行多路复用?

    我看到一些关于使用 SPDY 的旧问题 尽管从那时起代码已经发生了很大变化 但没有深入了解如何在 OkHttp 中正确利用多路复用和 或管道 我已经浏览了所有示例 但尚未看到任何具体涉及此的内容 这是自动完成的事情吗 这是自动的 如果您有一
  • JMeter 负载服务器会影响我的结果吗?

    我正在使用亚马逊 EC2 实例 大型 作为使用 1 000 个线程的负载服务器来运行 JMeter 测试 负载服务器CPU利用率稳定在90 左右 内存利用率稳定在70 是否存在关于负载服务器在什么时候没有足够资源 内存或 CPU 而导致负载
  • Jmeter 线程真的接近用户吗?

    我正在尝试使用记录控制器设置 JMeter 负载测试 这会导致 Web 浏览器进行的所有调用重复 包括 css 文件 js 文件和图像 假定 Web 浏览器会同时获取这些内容 同时执行大约 10 个 Web 请求 jmeter 文档倾向于将

随机推荐