2017-02-20 90 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。 –