3

このページにアクセスしました: https://www.eclipse.org/jetty/documentation/9.3.x/alpn-chapter.htmlクラスパスに ALPN ブート jar を配置しましたが、それでも機能しません。

Oracle Java 8 よりも Open SDK 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>

Oracle JDK と互換性のある ALPN ブートのバージョンを確認するためのドキュメントはどこにありますか? ALPN ブートは OpenJDK とのみ互換性がありますか?

ALPN の Java 9 サポートの開始がネイティブになることを読みました。

余談ですが、どっちがいいですか?HTTP/2 呼び出し用の Netty または Jetty。

4

2 に答える 2

3

Jetty の ALPN ブート jar は、OpenJDK と Oracle の JDK (OpenJDK ベース) の両方で動作します。

リンク先のドキュメントにあるように、 Jetty の ALPN ブート jar は、通常のクラスパスではなく、ブートクラスパスにある必要があります。

そのため、ファイル内で依存関係として宣言してはなりませんpom.xml(JDK クラスへの依存関係を指定する必要がないのと同様に、その必要はありません)。

JDK 9 では ALPN がネイティブにサポートされますが、その方向での作業は既に行われています。

于 2016-10-04T17:58:48.910 に答える