我浏览了这个页面:https : //www.eclipse.org/jetty/documentation/9.3.x/alpn-chapter.html 在我的类路径中有一个 ALPN 引导 jar,但我仍然无法让它工作。
我很困惑是否需要 Open SDK Java 8 而不是 Oracle Java 8。
我的Java版本是:
java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
我正在使用以下版本的 Jetty 和 ALPN 引导:
<jetty-version>9.4.0.M1</jetty-version>
<alpn-version>8.1.9.v20160720</alpn-version>
<dependency>
<groupId>org.mortbay.jetty.alpn</groupId>
<artifactId>alpn-boot</artifactId>
<version>${alpn-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-client</artifactId>
<version>${jetty-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-client</artifactId>
<version>${jetty-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-http-client-transport</artifactId>
<version>${jetty-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-common</artifactId>
<version>${jetty-version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.http2</groupId>
<artifactId>http2-hpack</artifactId>
<version>${jetty-version}</version>
</dependency>
我还尝试使用不同版本的 Jetty 和 ALPN,我在这里找到了https://mvnrepository.com/artifact/org.mortbay.jetty.alpn/alpn-boot和这里https://mvnrepository.com/search?q=org .eclipse.jetty
无论我尝试哪种方式,我都无法将 POST 请求提交到 HTTP/2 端点。
但是,使用 Netty 和以下依赖项,我的测试成功了:
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>1.1.33.Fork22</version>
</dependency>
我在哪里可以找到文档以查看哪个版本的 ALPN 引导与 Oracle JDK 兼容?ALPN 引导是否仅与 OpenJDK 兼容?
我读到开始 Java 9 对 ALPN 的支持将是本机的。
顺便说一句,哪个更好?用于 HTTP/2 调用的 Netty 或 Jetty。