2016-05-24 41 views
-1

OpenJDK 8の場合、Jetty alpn-bootを評価してALPN(およびHTTP/2)のサポートを追加しています。しかし、問題は、jarファイルをブートクラスパスに入れる必要があり、すべての環境(顧客のサーバーなど)でwebappに常に存在することを保証できないことです。ALPNがサポートされていることを確認してください

だから私は次のようにフォールバックメカニズムが必要になりますALPNはHTTP/2サーバーへの実際の接続を行うことなくサポートされている場合、私は確認することができ

if (isAlpnSupported()) { 
    /* use HTTP/2 protocol */ 
} else { 
    /* fallback legacy code */ 
} 

? Webアプリケーションは、両方のHTTP/1.1とHTTPサポートする別のサーバーにHTTPリクエストを実行する場合にのみ有用であろう

boolean isALPNPresent() { 
    try { 
     ClassLoader.getSystemClassLoader().loadClass("org.eclipse.jetty.alpn.ALPN"); 
     return true; 
    } catch (Throwable x) { 
     return false; 
    } 
} 

:ALPNが存在するかどうかを確認する

答えて

1

は、クラスの存在のための簡単なチェックです/ 2。

このチェックでは、適切なプロトコルでリクエストを実行するようにWebアプリケーション内のHTTPクライアントを設定できます。

+0

'catch(Throwable x)'はちょっと醜いですが、私は感謝しました。 – holmis83

関連する問題