Http-client исключен из spring-rabbit

Я использую http-client с spring-rabbit в Spring Boot 1.5.6.RELEASE, и он отлично работает.

В Spring Boot 2.0.2.RELEASEhttp-client исключен из spring-rabbitpom.xml.

Я не хочу вручную добавлять http-client и отслеживать версии между загрузочными версиями.

spring-boot-starter-amqp-1.5.6.RELEASE:

<dependency>
    <groupId>org.springframework.amqp</groupId>
    <artifactId>spring-rabbit</artifactId>
</dependency>

spring-boot-starter-amqp-2.0.2.RELEASE:

<dependency>
  <groupId>org.springframework.amqp</groupId>
  <artifactId>spring-rabbit</artifactId>
  <version>2.0.3.RELEASE</version>
  <scope>compile</scope>
  <exclusions>
    <exclusion>
      <artifactId>http-client</artifactId>
      <groupId>com.rabbitmq</groupId>
    </exclusion>
  </exclusions>
</dependency>

Почему http-client исключен и могу ли я включить его без определения версии? Версия - 2.0.1.RELEASE, но она не извлекается как свойство в spring-rabbit.

думаю что заменен на <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.1.2</version> <scope>compile</scope> </dependency>

Halayem Anis 19.06.2018 17:01

amqp-client не то же самое. Я использую org.springframework.amqp.rabbit.core.RabbitManagementTemplat‌​e, и он зависит от com.rabbitmq.http.client.Client, поэтому мне нужен http-client.

tomi 20.06.2018 09:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
807
1

Ответы 1

Согласно документации Spring AMQP, зависимость com.rabbitmq:http-client теперь необязательна. По-видимому, это было изменено, чтобы разрешить несколько клиентских реализаций.

When the management plugin is enabled, the RabbitMQ server exposes a REST API to monitor and configure the broker. A Java Binding for the API is now provided. The com.rabbitmq.http.client.Client is a standard, immediate and, therefore, blocking API. It is based on the Spring Web module and its RestTemplate implementation. On the other hand, the com.rabbitmq.http.client.ReactorNettyClient is a reactive, non-blocking implementation based on the Reactor Netty project.

The hop dependency (com.rabbitmq:http-client) is now also optional.

  • Клиент: немедленный и блокирующий клиент
  • ReactorNettyClient: реактивный и неблокирующий клиент

См. Документацию

Если вы хотите использовать стандартный http-клиент, вы можете добавить зависимость. Обратите внимание на то, что вам не нужно самостоятельно отслеживать правильную версию. Версия выбирается автоматически на основе вашей версии spring-boot-starter-amqp.

// Maven
<dependency>
  <groupId>com.rabbitmq</groupId>
  <artifactId>http-client</artifactId>
</dependency>

// Gradle
compile("com.rabbitmq:http-client")

Вы также можете обратиться к соответствующему проекту GitHub, чтобы узнать, как включить конкретного клиента: rabbitmq / хмель

Извини за это. В моем случае я заметил следующее. Автоматическая версия действительно работает для меня при определении зависимостей RabbitMQ в пользовательской библиотеке, включая эту библиотеку и зависимости http-client в моем приложении бок о бок. Когда я перенес зависимости http-клиента в библиотеку, мне нужно было установить версии вручную. В настоящее время добавлены com.rabbitmq:http-client=2.0.1.RELEASE и io.projectreactor.ipc:reactor-netty=0.7.1.RELEASE

Robin Hermans 29.10.2018 11:04

Другие вопросы по теме