2017-02-20 10 views
16

Я хочу реализовать клиент JAX-RS, который поддерживает HTTP/1.1 и HTTP/2 для клиента JAX-RS.Поддержка HTTP/1.1 и HTTP/2 с помощью клиента JAX-RS

Идея использования HTTP/2, если сервер поддерживает ALPN с помощью протокола HTTP/2 и использует HTTP/1.1, если сервер не предоставляет никакой информации.

Я прочитал несколько статей об ALPN, и это кажется возможным, но я не нашел ничего, поддерживающего этот протокол в одно и то же время. Мне не удалось подключить их вместе.

В настоящее время я использую Jetty HTTP/1.1 transport connector for Jersey и custom implementation for HTTP/2 transport connector.

+4

Вы хотите [открыть проблему] (https://github.com/eclipse/jetty.project/issues) для Jetty для поддержки динамического выбора транспорта для использования на основе ALPN. Таким образом, вы будете писать только один транспорт Джерси, который работает с обоими протоколами. Благодаря ! – sbordet

+2

@sbordet Я только что создал [выпуск] (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 на rest.util.JettyHttp2Connector.apply –

+0

@kapildas Я обновил к Джерси 2.26. Не могли бы вы попробовать еще раз? Я переименовал репозиторий в https://github.com/nhenneaux/jersey-http2-jetty-connector. –

Смежные вопросы