2017-02-20 82 views
16

我想爲JAX-RS客戶端實現支持HTTP/1.1和HTTP/2的JAX-RS客戶端。使用JAX-RS客戶端支持HTTP/1.1和HTTP/2

如果服務器支持使用HTTP/2的ALPN,並且如果服務器不提供任何信息,則使用HTTP/1.1來使用HTTP/2。

我已經閱讀了一些關於ALPN的文章,它似乎是可能的,但我沒有在同一時間找到任何支持這些協議的東西。我沒有設法將這些插在一起。我正在使用Jetty HTTP/1.1 transport connector for Jerseycustom implementation for HTTP/2 transport connector

+4

你想[打開一個問題](https://github.com/eclipse/jetty.project/issues)到Jetty,以支持基於ALPN動態選擇要使用的傳輸。這樣,你將只能編寫一個與兩種協議兼容的澤西運輸工具。謝謝 ! – sbordet

+2

@sbordet我剛剛創建了[issue](https://github.com/eclipse/jetty.project/issues/1350) –

+0

您是否嘗試在您的應用程序中使用任何異步調用 –

回答

0

https://github.com/nhenneaux/jaxrs-http2-example

看這一個例子,但要確保沒有異步調用。

+0

我是這個知識庫的維護者,你是否遇到過異步的問題?從此存儲庫實現HTTP2 Jetty連接器是我目前使用的,但它不支持HTTP/1.1和HTTP/2.0。它僅支持HTTP/2.0。 –

+0

嗨尼古拉斯,而運行時我得到錯誤爲javax.ws.rs.ProcessingException:java.util.concurrent.ExecutionException:java.nio.channels.AsynchronousCloseException \t at rest.util.JettyHttp2Connector.apply –

+0

@kapildas我已更新到澤西島2.26。你能再試一次嗎?我將存儲庫重命名爲https://github.com/nhenneaux/jersey-http2-jetty-connector。 –