我无法使用Jmeter 4.0创建HTTP2请求。 我已经安装了最新的JDK和HTTP / 2协议采样器插件。
我还观察到:“ penJDK8ClientALPNProcessor @ e23ec5a不适用于Java 10.0.2” 使用Java 9进行了尝试,但我得到了同样的东西。
PS:我已经尝试添加JVM_ARGS = ...
完整的堆栈跟踪为:
GetDescription()
答案 0 :(得分:3)
HTTP/2 Sampler的默认安装使用依赖项...
Install library: http2-client
Install library: jetty-alpn-openjdk8-client
Install library: jetty-alpn-client
Install library: http2-common
Install library: http2-hpack
Install library: jetty-io
Install library: jetty-http
Install library: jetty-util
Install plugin: bzm-http2 1.2
此依赖性列表对于Java 9+无效。
尤其是,jetty-alpn-openjdk8-client
依赖项无效,不适用于Java 9+。
对于Java 9+,应改为使用jetty-alpn-java-client
。
历史:
在Java 8时代,需要支持HTTP / 2,这需要TLS的ALPN层。
Java 8没有对ALPN的官方支持,因此Jetty项目维护了JVM -Xbootclasspath/p:<path-to-alpn-boot.jar>
替代JVM中的核心SSL层,以允许使用ALPN。
这是JVM本身未提供的自定义API。
https://www.eclipse.org/jetty/documentation/current/alpn-chapter.html
Jetty之外的其他项目也开始使用此API。
当Java 9网络讨论开始时,需要将ALPN支持引入到JVM本身。
openjdk的这项工作成为ALPN的官方API。
此新的官方API与Java 8 API不同。
简而言之,您必须为正在使用的JVM使用适当的API层。
如果要对此提供支持,请在jmeter-plugins forum上打开一个新主题(可参考此stackoverflow答案)
答案 1 :(得分:0)
答案 2 :(得分:0)
使用码头9.4.19.v20190610:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-alpn-java-client</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-alpn-conscrypt-client</artifactId>
</dependency>